summaryrefslogtreecommitdiffstats
path: root/pcp
diff options
context:
space:
mode:
authorBowDown097 <btd6modsyeet@gmail.com>2023-11-24 13:12:34 -0800
committerBowDown097 <btd6modsyeet@gmail.com>2023-11-24 13:12:34 -0800
commit986dbfc19c6c84f5b86f345257212a1a7abb62f7 (patch)
treed1ea372631ef89b9cf8eff875d086941070ed79d /pcp
parent1d3a823d5d87c0966b3001f7ee18285e15506806 (diff)
Linux + PCP: Add private memory size column
Diffstat (limited to 'pcp')
-rw-r--r--pcp/PCPProcess.c4
-rw-r--r--pcp/PCPProcess.h1
-rw-r--r--pcp/PCPProcessTable.c1
-rw-r--r--pcp/ProcessField.h1
4 files changed, 7 insertions, 0 deletions
diff --git a/pcp/PCPProcess.c b/pcp/PCPProcess.c
index b5483476..c2929a83 100644
--- a/pcp/PCPProcess.c
+++ b/pcp/PCPProcess.c
@@ -49,6 +49,7 @@ const ProcessFieldData Process_fields[] = {
[M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, .defaultSortDesc = true, },
[M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, .defaultSortDesc = true, },
[M_SHARE] = { .name = "M_SHARE", .title = " SHR ", .description = "Size of the process's shared pages", .flags = 0, .defaultSortDesc = true, },
+ [M_PRIV] = { .name = "M_PRIV", .title = " PRIV ", .description = "The private memory size of the process - resident set size minus shared memory", .flags = 0, .defaultSortDesc = true, },
[M_TRS] = { .name = "M_TRS", .title = " CODE ", .description = "Size of the text segment of the process", .flags = 0, .defaultSortDesc = true, },
[M_DRS] = { .name = "M_DRS", .title = " DATA ", .description = "Size of the data segment plus stack usage of the process", .flags = 0, .defaultSortDesc = true, },
[M_LRS] = { .name = "M_LRS", .title = " LIB ", .description = "The library size of the process (unused since Linux 2.6; always 0)", .flags = 0, .defaultSortDesc = true, },
@@ -138,6 +139,7 @@ static void PCPProcess_rowWriteField(const Row* super, RichString* str, ProcessF
case M_LRS: Row_printBytes(str, pp->m_lrs, coloring); return;
case M_TRS: Row_printBytes(str, pp->m_trs, coloring); return;
case M_SHARE: Row_printBytes(str, pp->m_share, coloring); return;
+ case M_PRIV: Row_printBytes(str, pp->m_priv, coloring); return;
case M_PSS: Row_printKBytes(str, pp->m_pss, coloring); return;
case M_SWAP: Row_printKBytes(str, pp->m_swap, coloring); return;
case M_PSSWP: Row_printKBytes(str, pp->m_psswp, coloring); return;
@@ -214,6 +216,8 @@ static int PCPProcess_compareByKey(const Process* v1, const Process* v2, Process
return SPACESHIP_NUMBER(p1->m_trs, p2->m_trs);
case M_SHARE:
return SPACESHIP_NUMBER(p1->m_share, p2->m_share);
+ case M_PRIV:
+ return SPACESHIP_NUMBER(p1->m_priv, p2->m_priv);
case M_PSS:
return SPACESHIP_NUMBER(p1->m_pss, p2->m_pss);
case M_SWAP:
diff --git a/pcp/PCPProcess.h b/pcp/PCPProcess.h
index be33111e..c07d4ecc 100644
--- a/pcp/PCPProcess.h
+++ b/pcp/PCPProcess.h
@@ -38,6 +38,7 @@ typedef struct PCPProcess_ {
unsigned long long int cutime;
unsigned long long int cstime;
long m_share;
+ long m_priv;
long m_pss;
long m_swap;
long m_psswp;
diff --git a/pcp/PCPProcessTable.c b/pcp/PCPProcessTable.c
index 0355e25a..05971938 100644
--- a/pcp/PCPProcessTable.c
+++ b/pcp/PCPProcessTable.c
@@ -201,6 +201,7 @@ static void PCPProcessTable_updateMemory(PCPProcess* pp, int pid, int offset) {
pp->super.m_virt = Metric_instance_u32(PCP_PROC_MEM_SIZE, pid, offset, 0);
pp->super.m_resident = Metric_instance_u32(PCP_PROC_MEM_RSS, pid, offset, 0);
pp->m_share = Metric_instance_u32(PCP_PROC_MEM_SHARE, pid, offset, 0);
+ pp->m_priv = pp->super.m_resident - pp->m_share;
pp->m_trs = Metric_instance_u32(PCP_PROC_MEM_TEXTRS, pid, offset, 0);
pp->m_lrs = Metric_instance_u32(PCP_PROC_MEM_LIBRS, pid, offset, 0);
pp->m_drs = Metric_instance_u32(PCP_PROC_MEM_DATRS, pid, offset, 0);
diff --git a/pcp/ProcessField.h b/pcp/ProcessField.h
index b3ba2657..4c82e7ab 100644
--- a/pcp/ProcessField.h
+++ b/pcp/ProcessField.h
@@ -45,6 +45,7 @@ in the source distribution for its full text.
SECATTR = 123, \
AUTOGROUP_ID = 127, \
AUTOGROUP_NICE = 128, \
+ M_PRIV = 129, \
// End of list

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