]> granicus.if.org Git - procps-ng/commitdiff
library: modify calculation of 'MEMINFO_MEM_USED' item
authorJim Warner <james.warner@comcast.net>
Wed, 22 Jun 2022 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@dropbear.xyz>
Sat, 25 Jun 2022 01:32:18 +0000 (11:32 +1000)
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>
proc/meminfo.c
proc/meminfo.h

index 3f949450365147a4818cd8631c27ca99ef914cc8..719ad3e78acb258c15d8be2cbdbcabcbcb89dbac 100644 (file)
@@ -699,7 +699,7 @@ static int meminfo_read_failed (
        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;
index 0f3d0076afe1a261f3f0cebf6efbf657af42e852..1913abd11832f5a4220092dd47f8bc751526347a 100644 (file)
@@ -89,7 +89,7 @@ enum meminfo_item {
     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         "