Re: [PATCH v2 1/6] Documentation: filesystems: proc: update meminfo section

From: David Hildenbrand
Date: Wed May 11 2022 - 13:12:06 EST


On 10.05.22 17:28, Johannes Weiner wrote:
> Add new entries. Minor corrections and cleanups.
>
> Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx>
> ---
> Documentation/filesystems/proc.rst | 155 ++++++++++++++++++-----------
> 1 file changed, 99 insertions(+), 56 deletions(-)
>
> diff --git a/Documentation/filesystems/proc.rst b/Documentation/filesystems/proc.rst
> index 061744c436d9..736ed384750c 100644
> --- a/Documentation/filesystems/proc.rst
> +++ b/Documentation/filesystems/proc.rst
> @@ -942,56 +942,71 @@ can be substantial. In many cases there are other means to find out
> additional memory using subsystem specific interfaces, for instance
> /proc/net/sockstat for TCP memory allocations.
>
> -The following is from a 16GB PIII, which has highmem enabled.
> -You may not have all of these fields.
> +Example output. You may not have all of these fields.
>
> ::
>
> > cat /proc/meminfo
>
> - MemTotal: 16344972 kB
> - MemFree: 13634064 kB
> - MemAvailable: 14836172 kB
> - Buffers: 3656 kB
> - Cached: 1195708 kB
> - SwapCached: 0 kB
> - Active: 891636 kB
> - Inactive: 1077224 kB
> - HighTotal: 15597528 kB
> - HighFree: 13629632 kB
> - LowTotal: 747444 kB
> - LowFree: 4432 kB
> - SwapTotal: 0 kB
> - SwapFree: 0 kB
> - Dirty: 968 kB
> - Writeback: 0 kB
> - AnonPages: 861800 kB
> - Mapped: 280372 kB
> - Shmem: 644 kB
> - KReclaimable: 168048 kB
> - Slab: 284364 kB
> - SReclaimable: 159856 kB
> - SUnreclaim: 124508 kB
> - PageTables: 24448 kB
> - NFS_Unstable: 0 kB
> - Bounce: 0 kB
> - WritebackTmp: 0 kB
> - CommitLimit: 7669796 kB
> - Committed_AS: 100056 kB
> - VmallocTotal: 112216 kB
> - VmallocUsed: 428 kB
> - VmallocChunk: 111088 kB
> - Percpu: 62080 kB
> - HardwareCorrupted: 0 kB
> - AnonHugePages: 49152 kB
> - ShmemHugePages: 0 kB
> - ShmemPmdMapped: 0 kB
> + MemTotal: 32858820 kB
> + MemFree: 21001236 kB
> + MemAvailable: 27214312 kB
> + Buffers: 581092 kB
> + Cached: 5587612 kB
> + SwapCached: 0 kB
> + Active: 3237152 kB
> + Inactive: 7586256 kB
> + Active(anon): 94064 kB
> + Inactive(anon): 4570616 kB
> + Active(file): 3143088 kB
> + Inactive(file): 3015640 kB
> + Unevictable: 0 kB
> + Mlocked: 0 kB
> + SwapTotal: 0 kB
> + SwapFree: 0 kB
> + Dirty: 12 kB
> + Writeback: 0 kB
> + AnonPages: 4654780 kB
> + Mapped: 266244 kB
> + Shmem: 9976 kB
> + KReclaimable: 517708 kB
> + Slab: 660044 kB
> + SReclaimable: 517708 kB
> + SUnreclaim: 142336 kB
> + KernelStack: 11168 kB
> + PageTables: 20540 kB
> + NFS_Unstable: 0 kB
> + Bounce: 0 kB
> + WritebackTmp: 0 kB
> + CommitLimit: 16429408 kB
> + Committed_AS: 7715148 kB
> + VmallocTotal: 34359738367 kB
> + VmallocUsed: 40444 kB
> + VmallocChunk: 0 kB
> + Percpu: 29312 kB
> + HardwareCorrupted: 0 kB
> + AnonHugePages: 4149248 kB
> + ShmemHugePages: 0 kB
> + ShmemPmdMapped: 0 kB
> + FileHugePages: 0 kB
> + FilePmdMapped: 0 kB
> + CmaTotal: 0 kB
> + CmaFree: 0 kB
> + HugePages_Total: 0
> + HugePages_Free: 0
> + HugePages_Rsvd: 0
> + HugePages_Surp: 0
> + Hugepagesize: 2048 kB
> + Hugetlb: 0 kB
> + DirectMap4k: 401152 kB
> + DirectMap2M: 10008576 kB
> + DirectMap1G: 24117248 kB
>
> MemTotal
> Total usable RAM (i.e. physical RAM minus a few reserved
> bits and the kernel binary code)
> MemFree
> - The sum of LowFree+HighFree
> + Total free RAM. On highmem systems, the sum of LowFree+HighFree
> MemAvailable
> An estimate of how much memory is available for starting new
> applications, without swapping. Calculated from MemFree,
> @@ -1005,8 +1020,9 @@ Buffers
> Relatively temporary storage for raw disk blocks
> shouldn't get tremendously large (20MB or so)
> Cached
> - in-memory cache for files read from the disk (the
> - pagecache). Doesn't include SwapCached
> + In-memory cache for files read from the disk (the
> + pagecache) as well as tmpfs & shmem.
> + Doesn't include SwapCached.
> SwapCached
> Memory that once was swapped out, is swapped back in but
> still also is in the swapfile (if memory is needed it
> @@ -1018,6 +1034,11 @@ Active
> Inactive
> Memory which has been less recently used. It is more
> eligible to be reclaimed for other purposes
> +Unevictable
> + Memory that cannot be reclaimed, such as mlocked pages,
> + ramfs backing pages, secret memfd pages etc.


A little imprecise, because this only includes memory to be mapped into
user space. For example, all kernel allocations are unevictable but not
accounted here.

Apart from that

Acked-by: David Hildenbrand <david@xxxxxxxxxx>


--
Thanks,

David / dhildenb