summaryrefslogtreecommitdiffstats
path: root/pcp
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2021-08-31 15:38:52 +1000
committerNathan Scott <nathans@redhat.com>2021-12-07 17:04:49 +1100
commit72ba20fa5f077bab4286dd78f9944df15de3b3b4 (patch)
tree0c4fb4e63b80b3a20d5f50bdac6bed9fe2bee607 /pcp
parentff4f44b22ae8d6522ee22599174a6cdd41bc0314 (diff)
Introduce screen tabs
This is a forward port (by nathans) of Hisham's original code.
Diffstat (limited to 'pcp')
-rw-r--r--pcp/PCPProcessList.c26
-rw-r--r--pcp/Platform.c15
-rw-r--r--pcp/Platform.h4
3 files changed, 32 insertions, 13 deletions
diff --git a/pcp/PCPProcessList.c b/pcp/PCPProcessList.c
index cae097fd..0664a162 100644
--- a/pcp/PCPProcessList.c
+++ b/pcp/PCPProcessList.c
@@ -384,12 +384,12 @@ static bool PCPProcessList_updateProcesses(PCPProcessList* this, double period,
continue;
}
- if (settings->flags & PROCESS_FLAG_IO)
+ if (settings->ss->flags & PROCESS_FLAG_IO)
PCPProcessList_updateIO(pp, pid, offset, now);
PCPProcessList_updateMemory(pp, pid, offset);
- if ((settings->flags & PROCESS_FLAG_LINUX_SMAPS) &&
+ if ((settings->ss->flags & PROCESS_FLAG_LINUX_SMAPS) &&
(Process_isKernelThread(proc) == false)) {
if (PCPMetric_enabled(PCP_PROC_SMAPS_PSS))
PCPProcessList_updateSmaps(pp, pid, offset);
@@ -419,22 +419,22 @@ static bool PCPProcessList_updateProcesses(PCPProcessList* this, double period,
PCPProcessList_updateCmdline(proc, pid, offset, command);
}
- if (settings->flags & PROCESS_FLAG_LINUX_CGROUP)
+ if (settings->ss->flags & PROCESS_FLAG_LINUX_CGROUP)
PCPProcessList_readCGroups(pp, pid, offset);
- if (settings->flags & PROCESS_FLAG_LINUX_OOM)
+ if (settings->ss->flags & PROCESS_FLAG_LINUX_OOM)
PCPProcessList_readOomData(pp, pid, offset);
- if (settings->flags & PROCESS_FLAG_LINUX_CTXT)
+ if (settings->ss->flags & PROCESS_FLAG_LINUX_CTXT)
PCPProcessList_readCtxtData(pp, pid, offset);
- if (settings->flags & PROCESS_FLAG_LINUX_SECATTR)
+ if (settings->ss->flags & PROCESS_FLAG_LINUX_SECATTR)
PCPProcessList_readSecattrData(pp, pid, offset);
- if (settings->flags & PROCESS_FLAG_CWD)
+ if (settings->ss->flags & PROCESS_FLAG_CWD)
PCPProcessList_readCwd(pp, pid, offset);
- if (settings->flags & PROCESS_FLAG_LINUX_AUTOGROUP)
+ if (settings->ss->flags & PROCESS_FLAG_LINUX_AUTOGROUP)
PCPProcessList_readAutogroup(pp, pid, offset);
if (proc->state == ZOMBIE && !proc->cmdline && command[0]) {
@@ -676,16 +676,16 @@ void ProcessList_goThroughEntries(ProcessList* super, bool pauseProcessUpdate) {
for (int metric = PCP_PROC_PID; metric < PCP_METRIC_COUNT; metric++)
PCPMetric_enable(metric, enabled);
- flagged = settings->flags & PROCESS_FLAG_LINUX_CGROUP;
+ flagged = settings->ss->flags & PROCESS_FLAG_LINUX_CGROUP;
PCPMetric_enable(PCP_PROC_CGROUPS, flagged && enabled);
- flagged = settings->flags & PROCESS_FLAG_LINUX_OOM;
+ flagged = settings->ss->flags & PROCESS_FLAG_LINUX_OOM;
PCPMetric_enable(PCP_PROC_OOMSCORE, flagged && enabled);
- flagged = settings->flags & PROCESS_FLAG_LINUX_CTXT;
+ flagged = settings->ss->flags & PROCESS_FLAG_LINUX_CTXT;
PCPMetric_enable(PCP_PROC_VCTXSW, flagged && enabled);
PCPMetric_enable(PCP_PROC_NVCTXSW, flagged && enabled);
- flagged = settings->flags & PROCESS_FLAG_LINUX_SECATTR;
+ flagged = settings->ss->flags & PROCESS_FLAG_LINUX_SECATTR;
PCPMetric_enable(PCP_PROC_LABELS, flagged && enabled);
- flagged = settings->flags & PROCESS_FLAG_LINUX_AUTOGROUP;
+ flagged = settings->ss->flags & PROCESS_FLAG_LINUX_AUTOGROUP;
PCPMetric_enable(PCP_PROC_AUTOGROUP_ID, flagged && enabled);
PCPMetric_enable(PCP_PROC_AUTOGROUP_NICE, flagged && enabled);
diff --git a/pcp/Platform.c b/pcp/Platform.c
index 150660af..f6de7d9c 100644
--- a/pcp/Platform.c
+++ b/pcp/Platform.c
@@ -54,6 +54,21 @@ in the source distribution for its full text.
Platform* pcp;
+ScreenDefaults Platform_defaultScreens[] = {
+ {
+ .name = "Main",
+ .columns = "PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME COMM",
+ .sortKey = "PERCENT_CPU",
+ },
+ {
+ .name = "I/O",
+ .columns = "PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE PERCENT_SWAP_DELAY PERCENT_IO_DELAY COMM",
+ .sortKey = "IO_RATE",
+ },
+};
+
+const unsigned int Platform_numberOfDefaultScreens = ARRAYSIZE(Platform_defaultScreens);
+
ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_VIRT, M_RESIDENT, (int)M_SHARE, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 };
int Platform_numberOfFields = LAST_PROCESSFIELD;
diff --git a/pcp/Platform.h b/pcp/Platform.h
index ad38cbbd..f080df28 100644
--- a/pcp/Platform.h
+++ b/pcp/Platform.h
@@ -58,6 +58,10 @@ typedef struct Platform_ {
unsigned int ncpu; /* maximum processor count configured */
} Platform;
+extern ScreenDefaults Platform_defaultScreens[];
+
+extern const unsigned int Platform_numberOfDefaultScreens;
+
extern ProcessField Platform_defaultFields[];
extern int Platform_numberOfFields;

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