top: man page now includes resident memory enhancement
Since support already exists in the newlib branch this represents an equivalent master branch implementation, and this commit message is shared with 2 more patches. Beginning with linux-4.5, the following new fields are being added under that /proc/<pid>/status pseudo file: . RssAnon - size of resident anonymous memory . RssFile - size of resident file mappings . RssShmem - size of resident shared memory p.s. Locked resident memory support was also added but isn't directly related to the kernel 4.5 enhancements. p.p.s. Archlinux, Debian-stretch and Fedora-23 already are currently using a 4.5 linux kernel (as of 6/2/16). Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
		
							
								
								
									
										98
									
								
								top/top.1
									
									
									
									
									
								
							
							
						
						
									
										98
									
								
								top/top.1
									
									
									
									
									
								
							@@ -316,14 +316,20 @@ The memory in quadrant #4, when modified, acts as its own dedicated \*(MS.
 | 
			
		||||
.fi
 | 
			
		||||
 | 
			
		||||
The following may help in interpreting process level memory values displayed
 | 
			
		||||
as columns and discussed in topic `3a. DESCRIPTIONS of Fields'.
 | 
			
		||||
as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'.
 | 
			
		||||
 | 
			
		||||
.nf
 | 
			
		||||
   %MEM \- simply RES divided by total \*(MP
 | 
			
		||||
   CODE \- the `pgms' portion of quadrant \fB3\fR
 | 
			
		||||
   DATA \- the entire quadrant \fB1\fR portion of VIRT plus all
 | 
			
		||||
          explicit mmap file-backed pages of quadrant \fB3\fR
 | 
			
		||||
   RES  \- anything occupying \*(MP (all quadrants)
 | 
			
		||||
   RES  \- anything occupying \*(MP which, beginning with
 | 
			
		||||
          Linux-4.5, is the sum of the following three fields:
 | 
			
		||||
          RSan \- quadrant \fB1\fR pages, which include any
 | 
			
		||||
                 former quadrant \fB3\fR pages if modified
 | 
			
		||||
          RSfd \- quadrant \fB3\fR and quadrant \fB4\fR pages
 | 
			
		||||
          RSsh \- quadrant \fB2\fR pages
 | 
			
		||||
   RSlk \- subset of RES which cannot be swapped out (any quadrant)
 | 
			
		||||
   SHR  \- subset of RES (excludes \fB1\fR, includes all \fB2\fR & \fB4\fR, some \fB3\fR)
 | 
			
		||||
   SWAP \- potentially any quadrant except \fB4\fR
 | 
			
		||||
   USED \- simply the sum of RES and SWAP
 | 
			
		||||
@@ -776,6 +782,8 @@ And while the 2.6 kernel can be made mostly preemptible, it is not always so.
 | 
			
		||||
18.\fB RES \*(Em Resident Memory Size (KiB) \fR
 | 
			
		||||
A subset of the virtual address space (VIRT) representing the non-swapped
 | 
			
		||||
\*(MP a task is currently using.
 | 
			
		||||
It is also the sum of the RSan, RSfd and RSsh fields.
 | 
			
		||||
 | 
			
		||||
It can include private anonymous pages, private pages mapped to files
 | 
			
		||||
(including program images and shared libraries) plus shared anonymous pages.
 | 
			
		||||
All such memory is backed by the \*(MS represented separately under SWAP.
 | 
			
		||||
@@ -786,15 +794,35 @@ modified, act as a dedicated \*(MS and thus will never impact SWAP.
 | 
			
		||||
\*(XX.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
19.\fB RUID \*(Em Real User Id \fR
 | 
			
		||||
19.\fB RSan \*(Em Resident Anonymous Memory Size (KiB) \fR
 | 
			
		||||
A subset of resident memory (RES) representing private pages not
 | 
			
		||||
mapped to a file.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
20.\fB RSfd \*(Em Resident File-Backed Memory Size (KiB) \fR
 | 
			
		||||
A subset of resident memory (RES) representing the implicitly shared
 | 
			
		||||
pages supporting program images and shared libraries.
 | 
			
		||||
It also includes explicit file mappings, both private and shared.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
21.\fB RSlk \*(Em Resident Locked Memory Size (KiB) \fR
 | 
			
		||||
A subset of resident memory (RES) which cannot be swapped out.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
22.\fB RSsh \*(Em Resident Shared Memory Size (KiB) \fR
 | 
			
		||||
A subset of resident memory (RES) representing the explicitly shared
 | 
			
		||||
anonymous shm*/mmap pages.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
23.\fB RUID \*(Em Real User Id \fR
 | 
			
		||||
The\fI real\fR user ID.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
20.\fB RUSER \*(Em Real User Name \fR
 | 
			
		||||
24.\fB RUSER \*(Em Real User Name \fR
 | 
			
		||||
The\fI real\fR user name.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
21.\fB S \*(Em Process Status \fR
 | 
			
		||||
25.\fB S \*(Em Process Status \fR
 | 
			
		||||
The status of the task which can be one of:
 | 
			
		||||
    \fBD\fR = uninterruptible sleep
 | 
			
		||||
    \fBR\fR = running
 | 
			
		||||
@@ -809,16 +837,16 @@ Even without a true SMP machine, you may see numerous tasks in this state
 | 
			
		||||
depending on \*(We's delay interval and nice value.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
22.\fB SHR \*(Em Shared Memory Size (KiB) \fR
 | 
			
		||||
26.\fB SHR \*(Em Shared Memory Size (KiB) \fR
 | 
			
		||||
A subset of resident memory (RES) that may be used by other processes.
 | 
			
		||||
It will include shared anonymous pages and shared file-backed pages.
 | 
			
		||||
It also includes \fIprivate\fR pages mapped to files representing
 | 
			
		||||
It also includes private pages mapped to files representing
 | 
			
		||||
program images and shared libraries.
 | 
			
		||||
 | 
			
		||||
\*(XX.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
23.\fB SID \*(Em Session Id \fR
 | 
			
		||||
27.\fB SID \*(Em Session Id \fR
 | 
			
		||||
A session is a collection of process groups (\*(Xa PGRP),
 | 
			
		||||
usually established by the login shell.
 | 
			
		||||
A newly forked process joins the session of its creator.
 | 
			
		||||
@@ -827,11 +855,11 @@ member of the session, called the session leader, which is usually the
 | 
			
		||||
login shell.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
24.\fB SUID \*(Em Saved User Id \fR
 | 
			
		||||
28.\fB SUID \*(Em Saved User Id \fR
 | 
			
		||||
The\fI saved\fR user ID.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
25.\fB SUPGIDS \*(Em Supplementary Group IDs \fR
 | 
			
		||||
29.\fB SUPGIDS \*(Em Supplementary Group IDs \fR
 | 
			
		||||
The IDs of any supplementary group(s) established at login or
 | 
			
		||||
inherited from a task's parent.
 | 
			
		||||
They are displayed in a comma delimited list.
 | 
			
		||||
@@ -844,7 +872,7 @@ Even so, such variable width fields could still suffer truncation.
 | 
			
		||||
any truncated data.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
26.\fB SUPGRPS \*(Em Supplementary Group Names \fR
 | 
			
		||||
30.\fB SUPGRPS \*(Em Supplementary Group Names \fR
 | 
			
		||||
The names of any supplementary group(s) established at login or
 | 
			
		||||
inherited from a task's parent.
 | 
			
		||||
They are displayed in a comma delimited list.
 | 
			
		||||
@@ -857,24 +885,24 @@ Even so, such variable width fields could still suffer truncation.
 | 
			
		||||
any truncated data.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
27.\fB SUSER \*(Em Saved User Name \fR
 | 
			
		||||
31.\fB SUSER \*(Em Saved User Name \fR
 | 
			
		||||
The\fI saved\fR user name.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
28.\fB SWAP \*(Em Swapped Size (KiB) \fR
 | 
			
		||||
32.\fB SWAP \*(Em Swapped Size (KiB) \fR
 | 
			
		||||
The formerly resident portion of a task's address space written
 | 
			
		||||
to the \*(MS when \*(MP becomes over committed.
 | 
			
		||||
 | 
			
		||||
\*(XX.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
29.\fB TGID \*(Em Thread Group Id \fR
 | 
			
		||||
33.\fB TGID \*(Em Thread Group Id \fR
 | 
			
		||||
The ID of the thread group to which a task belongs.
 | 
			
		||||
It is the PID of the thread group leader.
 | 
			
		||||
In kernel terms, it represents those tasks that share an mm_struct.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
30.\fB TIME \*(Em \*(PU Time \fR
 | 
			
		||||
34.\fB TIME \*(Em \*(PU Time \fR
 | 
			
		||||
Total \*(PU time the task has used since it started.
 | 
			
		||||
When Cumulative mode is \*O, each process is listed with the \*(Pu
 | 
			
		||||
time that it and its dead children have used.
 | 
			
		||||
@@ -882,19 +910,19 @@ You toggle Cumulative mode with `S', which is both a \*(CO and an \*(CI.
 | 
			
		||||
\*(XC `S' \*(CI for additional information regarding this mode.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
31.\fB TIME+ \*(Em \*(PU Time, hundredths \fR
 | 
			
		||||
35.\fB TIME+ \*(Em \*(PU Time, hundredths \fR
 | 
			
		||||
The same as TIME, but reflecting more granularity through hundredths
 | 
			
		||||
of a second.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
32.\fB TPGID \*(Em Tty Process Group Id \fR
 | 
			
		||||
36.\fB TPGID \*(Em Tty Process Group Id \fR
 | 
			
		||||
The process group ID of the foreground process for the connected tty,
 | 
			
		||||
or \-1 if a process is not connected to a terminal.
 | 
			
		||||
By convention, this value equals the process ID (\*(Xa PID) of the
 | 
			
		||||
process group leader (\*(Xa PGRP).
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
33.\fB TTY \*(Em Controlling Tty \fR
 | 
			
		||||
37.\fB TTY \*(Em Controlling Tty \fR
 | 
			
		||||
The name of the controlling terminal.
 | 
			
		||||
This is usually the device (serial port, pty, etc.) from which the
 | 
			
		||||
process was started, and which it uses for input or output.
 | 
			
		||||
@@ -902,22 +930,22 @@ However, a task need not be associated with a terminal, in which case
 | 
			
		||||
you'll see `?' displayed.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
34.\fB UID \*(Em User Id \fR
 | 
			
		||||
38.\fB UID \*(Em User Id \fR
 | 
			
		||||
The\fI effective\fR user ID of the task's owner.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
35.\fB USED \*(Em Memory in Use (KiB) \fR
 | 
			
		||||
39.\fB USED \*(Em Memory in Use (KiB) \fR
 | 
			
		||||
This field represents the non-swapped \*(MP a task is using (RES) plus
 | 
			
		||||
the swapped out portion of its address space (SWAP).
 | 
			
		||||
 | 
			
		||||
\*(XX.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
36.\fB USER \*(Em User Name \fR
 | 
			
		||||
40.\fB USER \*(Em User Name \fR
 | 
			
		||||
The\fI effective\fR user name of the task's owner.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
37.\fB VIRT \*(Em Virtual Memory Size (KiB) \fR
 | 
			
		||||
41.\fB VIRT \*(Em Virtual Memory Size (KiB) \fR
 | 
			
		||||
The total amount of \*(MV used by the task.
 | 
			
		||||
It includes all code, data and shared libraries plus pages that have been
 | 
			
		||||
swapped out and pages that have been mapped but not used.
 | 
			
		||||
@@ -925,20 +953,20 @@ swapped out and pages that have been mapped but not used.
 | 
			
		||||
\*(XX.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
38.\fB WCHAN \*(Em Sleeping in Function \fR
 | 
			
		||||
42.\fB WCHAN \*(Em Sleeping in Function \fR
 | 
			
		||||
This field will show the name of the kernel function in which the task
 | 
			
		||||
is currently sleeping.
 | 
			
		||||
Running tasks will display a dash (`\-') in this column.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
39.\fB nDRT \*(Em Dirty Pages Count \fR
 | 
			
		||||
43.\fB nDRT \*(Em Dirty Pages Count \fR
 | 
			
		||||
The number of pages that have been modified since they were last
 | 
			
		||||
written to \*(AS.
 | 
			
		||||
Dirty pages must be written to \*(AS before the corresponding physical
 | 
			
		||||
memory location can be used for some other virtual page.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
40.\fB nMaj \*(Em Major Page Fault Count \fR
 | 
			
		||||
44.\fB nMaj \*(Em Major Page Fault Count \fR
 | 
			
		||||
The number of\fB major\fR page faults that have occurred for a task.
 | 
			
		||||
A page fault occurs when a process attempts to read from or write to a
 | 
			
		||||
virtual page that is not currently present in its address space.
 | 
			
		||||
@@ -946,7 +974,7 @@ A major page fault is when \*(AS access is involved in making that
 | 
			
		||||
page available.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
41.\fB nMin \*(Em Minor Page Fault count \fR
 | 
			
		||||
45.\fB nMin \*(Em Minor Page Fault count \fR
 | 
			
		||||
The number of\fB minor\fR page faults that have occurred for a task.
 | 
			
		||||
A page fault occurs when a process attempts to read from or write to a
 | 
			
		||||
virtual page that is not currently present in its address space.
 | 
			
		||||
@@ -954,50 +982,50 @@ A minor page fault does not involve \*(AS access in making that
 | 
			
		||||
page available.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
42.\fB nTH \*(Em Number of Threads \fR
 | 
			
		||||
46.\fB nTH \*(Em Number of Threads \fR
 | 
			
		||||
The number of threads associated with a process.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
43.\fB nsIPC \*(Em IPC namespace \fR
 | 
			
		||||
47.\fB nsIPC \*(Em IPC namespace \fR
 | 
			
		||||
The Inode of the namespace used to isolate interprocess communication (IPC)
 | 
			
		||||
resources such as System V IPC objects and POSIX message queues.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
44.\fB nsMNT \*(Em MNT namespace \fR
 | 
			
		||||
48.\fB nsMNT \*(Em MNT namespace \fR
 | 
			
		||||
The Inode of the namespace used to isolate filesystem mount points thus
 | 
			
		||||
offering different views of the filesystem hierarchy.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
45.\fB nsNET \*(Em NET namespace \fR
 | 
			
		||||
49.\fB nsNET \*(Em NET namespace \fR
 | 
			
		||||
The Inode of the namespace used to isolate resources such as network devices,
 | 
			
		||||
IP addresses, IP routing, port numbers, etc.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
46.\fB nsPID \*(Em PID namespace \fR
 | 
			
		||||
50.\fB nsPID \*(Em PID namespace \fR
 | 
			
		||||
The Inode of the namespace used to isolate process ID numbers
 | 
			
		||||
meaning they need not remain unique.
 | 
			
		||||
Thus, each such namespace could have its own `init/systemd' (PID #1) to
 | 
			
		||||
manage various initialization tasks and reap orphaned child processes.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
47.\fB nsUSER \*(Em USER namespace \fR
 | 
			
		||||
51.\fB nsUSER \*(Em USER namespace \fR
 | 
			
		||||
The Inode of the namespace used to isolate the user and group ID numbers.
 | 
			
		||||
Thus, a process could have a normal unprivileged user ID outside a user
 | 
			
		||||
namespace while having a user ID of 0, with full root privileges, inside
 | 
			
		||||
that namespace.
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
48.\fB nsUTS \*(Em UTS namespace \fR
 | 
			
		||||
52.\fB nsUTS \*(Em UTS namespace \fR
 | 
			
		||||
The Inode of the namespace used to isolate hostname and NIS domain name.
 | 
			
		||||
UTS simply means "UNIX Time-sharing System".
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
49.\fB vMj \*(Em Major Page Fault Count Delta\fR
 | 
			
		||||
53.\fB vMj \*(Em Major Page Fault Count Delta\fR
 | 
			
		||||
The number of\fB major\fR page faults that have occurred since the
 | 
			
		||||
last update (see nMaj).
 | 
			
		||||
 | 
			
		||||
.TP 4
 | 
			
		||||
50.\fB vMn \*(Em Minor Page Fault Count Delta\fR
 | 
			
		||||
54.\fB vMn \*(Em Minor Page Fault Count Delta\fR
 | 
			
		||||
The number of\fB minor\fR page faults that have occurred since the
 | 
			
		||||
last update (see nMin).
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user