summaryrefslogtreecommitdiffstats
path: root/linux/LinuxProcess.h
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2018-01-31 00:52:08 -0200
committerHisham Muhammad <hisham@gobolinux.org>2018-02-17 15:30:15 -0200
commit0cbdf8ba271d874d2efd3171cff0d4ebeabc087f (patch)
treecf613264b0935230b21ac46aeba34501ba152fca /linux/LinuxProcess.h
parentcf0c074cc8c7e6fe858d621ea59976d2159d51bf (diff)
Implemented various performance counters
Diffstat (limited to 'linux/LinuxProcess.h')
-rw-r--r--linux/LinuxProcess.h54
1 files changed, 44 insertions, 10 deletions
diff --git a/linux/LinuxProcess.h b/linux/LinuxProcess.h
index ca22bdda..6abcb127 100644
--- a/linux/LinuxProcess.h
+++ b/linux/LinuxProcess.h
@@ -12,12 +12,22 @@ in the source distribution for its full text.
#include "PerfCounter.h"
-#define PROCESS_FLAG_LINUX_IOPRIO 0x0100
-#define PROCESS_FLAG_LINUX_OPENVZ 0x0200
-#define PROCESS_FLAG_LINUX_VSERVER 0x0400
-#define PROCESS_FLAG_LINUX_CGROUP 0x0800
-#define PROCESS_FLAG_LINUX_OOM 0x1000
-#define PROCESS_FLAG_LINUX_HPC 0x2000
+#define PROCESS_FLAG_LINUX_IOPRIO 0x0100L
+#define PROCESS_FLAG_LINUX_OPENVZ 0x0200L
+#define PROCESS_FLAG_LINUX_VSERVER 0x0400L
+#define PROCESS_FLAG_LINUX_CGROUP 0x0800L
+#define PROCESS_FLAG_LINUX_OOM 0x1000L
+
+#define PROCESS_FLAG_LINUX_HPC 0xff0000L
+#define PROCESS_FLAG_LINUX_HPC_CYCLE 0x10000L
+#define PROCESS_FLAG_LINUX_HPC_INSN 0x20000L
+#define PROCESS_FLAG_LINUX_HPC_MISS 0x40000L
+#define PROCESS_FLAG_LINUX_HPC_BMISS 0x80000L
+
+#define PROCESS_FLAG_LINUX_HPC_L1DR 0x100000L
+#define PROCESS_FLAG_LINUX_HPC_L1DW 0x200000L
+#define PROCESS_FLAG_LINUX_HPC_L1DRM 0x400000L
+#define PROCESS_FLAG_LINUX_HPC_L1DWM 0x800000L
typedef enum UnsupportedProcessFields {
FLAGS = 9,
@@ -83,8 +93,16 @@ typedef enum LinuxProcessFields {
#endif
#ifdef HAVE_PERFCOUNTERS
IPC = 119,
+ MCYCLE = 120,
+ MINSTR = 121,
+ PERCENT_MISS = 122,
+ PERCENT_BMISS = 123,
+ L1DREADS = 124,
+ L1DRMISSES = 125,
+ L1DWRITES = 126,
+ L1DWMISSES = 127,
#endif
- LAST_PROCESSFIELD = 120,
+ LAST_PROCESSFIELD = 128,
} LinuxProcessField;
#include "IOPriority.h"
@@ -140,7 +158,21 @@ typedef struct LinuxProcess_ {
#ifdef HAVE_PERFCOUNTERS
PerfCounter* cycleCounter;
PerfCounter* insnCounter;
- double ipc;
+ PerfCounter* missCounter;
+ PerfCounter* brCounter;
+ PerfCounter* l1drCounter;
+ PerfCounter* l1drmCounter;
+ PerfCounter* l1dwCounter;
+ PerfCounter* l1dwmCounter;
+ float ipc;
+ float mcycle;
+ float minstr;
+ float pMiss;
+ float pBMiss;
+ float l1dr;
+ float l1drm;
+ float l1dw;
+ float l1dwm;
#endif
} LinuxProcess;
@@ -177,12 +209,14 @@ IOPriority LinuxProcess_updateIOPriority(LinuxProcess* this);
bool LinuxProcess_setIOPriority(LinuxProcess* this, IOPriority ioprio);
-#ifdef HAVE_DELAYACCT
-void LinuxProcess_printDelay(float delay_percent, char* buffer, int n);
+#if HAVE_DELAYACCT || HAVE_PERFCOUNTERS
+
#endif
void LinuxProcess_writeField(Process* this, RichString* str, ProcessField field);
+#define COMPARE_FIELD(_f) return (p2->_f > p1->_f ? 1 : -1)
+
long LinuxProcess_compare(const void* v1, const void* v2);
bool Process_isThread(Process* this);

© 2014-2024 Faster IT GmbH | imprint | privacy policy