In an effort to more accurately reflect 'used' memory,
we will now rely on the kernel's estimate of available
memory. Thus, 'MEMINFO_MEM_USED' will be calculated as
just 'MEMINFO_MEM_TOTAL' less 'MEMINFO_MEM_AVAILABLE'.
Reference(s):
. thread leading to agreed upon change
https://www.freelists.org/post/procps/free-regression-due-to-a-different-calculation-of-Used-memory
. where consensus reached
https://www.freelists.org/post/procps/free-regression-due-to-a-different-calculation-of-Used-memory,11
https://www.freelists.org/post/procps/free-regression-due-to-a-different-calculation-of-Used-memory,12
Signed-off-by: Jim Warner <james.warner@comcast.net>
such values will be dramatically distorted over those of the host. */
if (mHr(MemAvailable) > mHr(MemTotal))
mHr(MemAvailable) = mHr(MemFree);
- mem_used = mHr(MemTotal) - mHr(MemFree) - mHr(derived_mem_cached) - mHr(Buffers);
+ mem_used = mHr(MemTotal) - mHr(MemAvailable);
if (mem_used < 0)
mem_used = mHr(MemTotal) - mHr(MemFree);
mHr(derived_mem_used) = (unsigned long)mem_used;
MEMINFO_MEM_SLAB_UNRECLAIM, // ul_int "
MEMINFO_MEM_TOTAL, // ul_int "
MEMINFO_MEM_UNEVICTABLE, // ul_int "
- MEMINFO_MEM_USED, // ul_int derived from MEM_TOTAL - MEM_BUFFERS - MEM_CACHED_ALL - MEM_FREE
+ MEMINFO_MEM_USED, // ul_int derived from MEM_TOTAL - MEM_AVAILABLE
MEMINFO_MEM_VM_ALLOC_CHUNK, // ul_int /proc/meminfo
MEMINFO_MEM_VM_ALLOC_TOTAL, // ul_int "
MEMINFO_MEM_VM_ALLOC_USED, // ul_int "