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 <mtk.manpages@gmail.com>
This commit is contained in:
Petr Gajdos 2014-04-12 08:04:35 +02:00 committed by Michael Kerrisk
parent a61dba3485
commit 95fe794d41
1 changed files with 64 additions and 9 deletions

View File

@ -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