From 95fe794d41f1648a23e054fbe513475e7646786b Mon Sep 17 00:00:00 2001 From: Petr Gajdos Date: Sat, 12 Apr 2014 08:04:35 +0200 Subject: [PATCH] proc.5: Improve /proc/[pid]/smaps entries description Glued together from: https://www.kernel.org/doc/Documentation/filesystems/proc.txt https://lkml.org/lkml/2008/9/23/362 https://lkml.org/lkml/2010/8/18/46 Signed-off-by: Michael Kerrisk --- man5/proc.5 | 73 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 64 insertions(+), 9 deletions(-) diff --git a/man5/proc.5 b/man5/proc.5 index 49decda69..ebd8a1e97 100644 --- a/man5/proc.5 +++ b/man5/proc.5 @@ -975,13 +975,21 @@ For each of mappings there is a series of lines such as the following: .in +4n .nf -08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bash -Size: 464 kB -Rss: 424 kB -Shared_Clean: 424 kB -Shared_Dirty: 0 kB -Private_Clean: 0 kB -Private_Dirty: 0 kB +00400000-0048a000 r-xp 00000000 fd:03 960637 /bin/bash +Size: 552 kB +Rss: 460 kB +Pss: 100 kB +Shared_Clean: 452 kB +Shared_Dirty: 0 kB +Private_Clean: 8 kB +Private_Dirty: 0 kB +Referenced: 460 kB +Anonymous: 0 kB +AnonHugePages: 0 kB +Swap: 0 kB +KernelPageSize: 4 kB +MMUPageSize: 4 kB +Locked: 0 kB .fi .in @@ -989,9 +997,56 @@ The first of these lines shows the same information as is displayed for the mapping in .IR /proc/[pid]/maps . The remaining lines show the size of the mapping, -the amount of the mapping that is currently resident in RAM, -the number of clean and dirty shared pages in the mapping, +the amount of the mapping that is currently resident in RAM ("Rss"), +the process' proportional share of this mapping ("Pss"), +the number of clean and dirty shared pages in the mapping and the number of clean and dirty private pages in the mapping. +"Referenced" indicates the amount of memory currently marked as +referenced or accessed. "Anonymous" shows the amount of memory +that does not belong to any file. "Swap" shows how much +would-be-anonymous memory is also used, but out on swap. + +The "KernelPageSize" entry is the pagesize used by the kernel to +back a VMA. This matches the size used by the MMU in the majority +of cases. However, one counter-example occurs on PPC64 kernels +whereby a kernel using 64K as a base pagesize may still use 4K +pages for the MMU on older processor. To distinguish, this +patch reports "MMUPageSize" as the pagesize used by the MMU. + +The "Locked" indicates whether the mapping is locked in memory +or not. + +"VmFlags" field represents the kernel flags associated with +the particular virtual memory area in two letter encoded +manner. The codes are the following: + rd - readable + wr - writeable + ex - executable + sh - shared + mr - may read + mw - may write + me - may execute + ms - may share + gd - stack segment growns down + pf - pure PFN range + dw - disabled write to the mapped file + lo - pages are locked in memory + io - memory mapped I/O area + sr - sequential read advise provided + rr - random read advise provided + dc - do not copy area on fork + de - do not expand area on remapping + ac - area is accountable + nr - swap space is not reserved for the area + ht - area uses huge tlb pages + nl - non-linear mapping + ar - architecture specific flag + dd - do not include area into core dump + sd - soft-dirty flag + mm - mixed map area + hg - huge page advise flag + nh - no-huge page advise flag + mg - mergable advise flag This file is present only if the .B CONFIG_MMU