mirror of
https://github.com/xzeldon/htop.git
synced 2024-12-24 15:15:44 +00:00
Implement shared memory support on the PCP platform
Uses the mem.util.shared metric (Shmem from meminfo).
This commit is contained in:
parent
d3af4e670d
commit
b424a5b137
@ -1,7 +1,7 @@
|
||||
/*
|
||||
htop - PCPProcessList.c
|
||||
(C) 2014 Hisham H. Muhammad
|
||||
(C) 2020 htop dev team
|
||||
(C) 2020-2021 htop dev team
|
||||
(C) 2020-2021 Red Hat, Inc. All Rights Reserved.
|
||||
Released under the GNU GPLv2, see the COPYING file
|
||||
in the source distribution for its full text.
|
||||
@ -584,12 +584,13 @@ static void PCPProcessList_updateMemoryInfo(ProcessList* super) {
|
||||
super->buffersMem = value.ull;
|
||||
if (Metric_values(PCP_MEM_SRECLAIM, &value, 1, PM_TYPE_U64) != NULL)
|
||||
sreclaimableMem = value.ull;
|
||||
if (Metric_values(PCP_MEM_SHARED, &value, 1, PM_TYPE_U64) != NULL)
|
||||
super->sharedMem = value.ull;
|
||||
if (Metric_values(PCP_MEM_CACHED, &value, 1, PM_TYPE_U64) != NULL) {
|
||||
super->cachedMem = value.ull;
|
||||
super->cachedMem += sreclaimableMem;
|
||||
}
|
||||
unsigned long long int usedDiff;
|
||||
usedDiff = freeMem + super->cachedMem + super->buffersMem;
|
||||
const memory_t usedDiff = freeMem + super->cachedMem + sreclaimableMem + super->buffersMem + super->sharedMem;
|
||||
super->usedMem = (super->totalMem >= usedDiff) ?
|
||||
super->totalMem - usedDiff : super->totalMem - freeMem;
|
||||
if (Metric_values(PCP_MEM_AVAILABLE, &value, 1, PM_TYPE_U64) != NULL)
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
htop - linux/Platform.c
|
||||
(C) 2014 Hisham H. Muhammad
|
||||
(C) 2020 htop dev team
|
||||
(C) 2020-2021 htop dev team
|
||||
(C) 2020-2021 Red Hat, Inc. All Rights Reserved.
|
||||
Released under the GNU GPLv2, see the COPYING file
|
||||
in the source distribution for its full text.
|
||||
@ -152,6 +152,7 @@ static const char *Platform_metricNames[] = {
|
||||
[PCP_MEM_AVAILABLE] = "mem.util.available",
|
||||
[PCP_MEM_BUFFERS] = "mem.util.bufmem",
|
||||
[PCP_MEM_CACHED] = "mem.util.cached",
|
||||
[PCP_MEM_SHARED] = "mem.util.shared",
|
||||
[PCP_MEM_SRECLAIM] = "mem.util.slabReclaimable",
|
||||
[PCP_MEM_SWAPCACHED] = "mem.util.swapCached",
|
||||
[PCP_MEM_SWAPTOTAL] = "mem.util.swapTotal",
|
||||
@ -587,18 +588,17 @@ double Platform_setCPUValues(Meter* this, int cpu) {
|
||||
void Platform_setMemoryValues(Meter* this) {
|
||||
const ProcessList* pl = this->pl;
|
||||
const PCPProcessList* ppl = (const PCPProcessList*) pl;
|
||||
long int usedMem = pl->usedMem;
|
||||
long int buffersMem = pl->buffersMem;
|
||||
long int cachedMem = pl->cachedMem;
|
||||
usedMem -= buffersMem + cachedMem;
|
||||
this->total = pl->totalMem;
|
||||
this->values[0] = usedMem;
|
||||
this->values[1] = buffersMem;
|
||||
this->values[2] = cachedMem;
|
||||
|
||||
this->total = pl->totalMem;
|
||||
this->values[0] = pl->usedMem;
|
||||
this->values[1] = pl->buffersMem;
|
||||
this->values[2] = pl->sharedMem;
|
||||
this->values[3] = pl->cachedMem;
|
||||
this->values[4] = pl->availableMem;
|
||||
|
||||
if (ppl->zfs.enabled != 0) {
|
||||
this->values[0] -= ppl->zfs.size;
|
||||
this->values[2] += ppl->zfs.size;
|
||||
this->values[3] += ppl->zfs.size;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
/*
|
||||
htop - pcp/Platform.h
|
||||
(C) 2014 Hisham H. Muhammad
|
||||
(C) 2020 htop dev team
|
||||
(C) 2020-2021 htop dev team
|
||||
(C) 2020-2021 Red Hat, Inc. All Rights Reserved.
|
||||
Released under the GNU GPLv2, see the COPYING file
|
||||
in the source distribution for its full text.
|
||||
@ -125,6 +125,7 @@ typedef enum Metric_ {
|
||||
PCP_MEM_FREE, /* mem.util.free */
|
||||
PCP_MEM_BUFFERS, /* mem.util.bufmem */
|
||||
PCP_MEM_CACHED, /* mem.util.cached */
|
||||
PCP_MEM_SHARED, /* mem.util.shared */
|
||||
PCP_MEM_AVAILABLE, /* mem.util.available */
|
||||
PCP_MEM_SRECLAIM, /* mem.util.slabReclaimable */
|
||||
PCP_MEM_SWAPCACHED, /* mem.util.swapCached */
|
||||
|
Loading…
Reference in New Issue
Block a user