Bug 1607318
| Summary: | fields missing in the proc man page | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Yaniv Ferszt <yferszt> |
| Component: | man-pages-overrides | Assignee: | Nikola Forró <nforro> |
| Status: | CLOSED ERRATA | QA Contact: | Jan Houska <jhouska> |
| Severity: | low | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 7.5 | CC: | jhouska, nforro, ovasik, smoroney |
| Target Milestone: | rc | Keywords: | ManPageChange |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | man-pages-overrides-7.6.2-1.el7 | Doc Type: | Bug Fix |
| Doc Text: |
Cause: Multiple fields present in /proc/[pid]/status and /proc/[pid]/smaps files were not documented in proc manual page.
Consequence: The meaning of such fields might have been unclear, as the name of a field is often not suggestive enough.
Fix: All the missing fields were documented.
Result: There are no undocumented fields in proc manual page.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2018-10-30 11:34:51 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1619613 | ||
|
Description
Yaniv Ferszt
2018-07-23 09:34:56 UTC
Posted a patch documenting Speculation_Store_Bypass field upstream: https://marc.info/?l=linux-man&m=153234734115838 Documentation of the rest of the fields can be backported. VERIFIED:
OLD (man-pages-overrides-7.5.2-1.el7)
Missing various fields.
NEW (man-pages-overrides-7.6.2-1.el7)
All mentioned missing fields are now no its place and described in the text.
* /proc/[pid]/status section now contain following text:
"""
/proc/[pid]/status
Provides much of the information in /proc/[pid]/stat and /proc/[pid]/statm
in a format that's easier for humans to parse. Here's an example:
$ cat /proc/$$/status
Name: bash
Umask: 0022
State: S (sleeping)
Tgid: 17248
Ngid: 0
Pid: 17248
PPid: 17200
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 100 100 100 100
FDSize: 256
Groups: 16 33 100
VmPeak: 131168 kB
VmSize: 131168 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 13484 kB
VmRSS: 13484 kB
RssAnon: 10264 kB
RssFile: 3220 kB
RssShmem: 0 kB
VmData: 10332 kB
VmStk: 136 kB
VmExe: 992 kB
VmLib: 2104 kB
VmPTE: 76 kB
Threads: 1
SigQ: 0/3067
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000010000
SigIgn: 0000000000384004
SigCgt: 000000004b813efb
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
CapAmb: 0000000000000000
Seccomp: 0
Speculation_Store_Bypass: vulnerable
Cpus_allowed: 00000001
Cpus_allowed_list: 0
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 150
nonvoluntary_ctxt_switches: 545
The fields are as follows:
* Name: Command run by this process.
* Umask: Process umask, expressed in octal with a leading zero; see
umask(2). (Since Linux 4.7.)
* State: Current state of the process. One of "R (running)", "S (sleep‐
ing)", "D (disk sleep)", "T (stopped)", "T (tracing stop)", "Z (zombie)",
or "X (dead)".
* Tgid: Thread group ID (i.e., Process ID).
* Ngid: NUMA group ID (0 if none; since Linux 3.13).
* Pid: Thread ID (see gettid(2)).
* PPid: PID of parent process.
* TracerPid: PID of process tracing this process (0 if not being traced).
* Uid, Gid: Real, effective, saved set, and filesystem UIDs (GIDs).
* FDSize: Number of file descriptor slots currently allocated.
* Groups: Supplementary group list.
* VmPeak: Peak virtual memory size.
* VmSize: Virtual memory size.
* VmLck: Locked memory size (see mlock(2)).
* VmPin: Pinned memory size (since Linux 3.2). These are pages that can't
be moved because something needs to directly access physical memory.
* VmHWM: Peak resident set size ("high water mark").
* VmRSS: Resident set size. Note that the value here is the sum of RssAnon,
RssFile, and RssShmem.
* RssAnon: Size of resident anonymous memory. (since Linux 4.5).
* RssFile: Size of resident file mappings. (since Linux 4.5).
* RssShmem: Size of resident shared memory (includes System V shared memory,
mappings from tmpfs(5), and shared anonymous mappings). (since Linux
4.5).
* VmData, VmStk, VmExe: Size of data, stack, and text segments.
* VmLib: Shared library code size.
* VmPTE: Page table entries size (since Linux 2.6.10).
* Threads: Number of threads in process containing this thread.
* SigQ: This field contains two slash-separated numbers that relate to
queued signals for the real user ID of this process. The first of these
is the number of currently queued signals for this real user ID, and the
second is the resource limit on the number of queued signals for this
process (see the description of RLIMIT_SIGPENDING in getrlimit(2)).
* SigPnd, ShdPnd: Number of signals pending for thread and for process as a
whole (see pthreads(7) and signal(7)).
* SigBlk, SigIgn, SigCgt: Masks indicating signals being blocked, ignored,
and caught (see signal(7)).
* CapInh, CapPrm, CapEff: Masks of capabilities enabled in inheritable, per‐
mitted, and effective sets (see capabilities(7)).
* CapBnd: Capability Bounding set (since Linux 2.6.26, see capabilities(7)).
* CapAmb: Ambient capability set (since Linux 4.3, see capabilities(7)).
* Seccomp: Seccomp mode of the process (since Linux 3.8, see seccomp(2)). 0
means SECCOMP_MODE_DISABLED; 1 means SECCOMP_MODE_STRICT; 2 means SEC‐
COMP_MODE_FILTER. This field is provided only if the kernel was built
with the CONFIG_SECCOMP kernel configuration option enabled.
* Speculation_Store_Bypass: Speculation flaw mitigation state (since Linux
4.17, see prctl(2)).
* Cpus_allowed: Mask of CPUs on which this process may run (since Linux
2.6.24, see cpuset(7)).
* Cpus_allowed_list: Same as previous, but in "list format" (since Linux
2.6.26, see cpuset(7)).
* Mems_allowed: Mask of memory nodes allowed to this process (since Linux
2.6.24, see cpuset(7)).
* Mems_allowed_list: Same as previous, but in "list format" (since Linux
2.6.26, see cpuset(7)).
* voluntary_ctxt_switches, nonvoluntary_ctxt_switches: Number of voluntary
and involuntary context switches (since Linux 2.6.23).
"""
* The section /proc/[pid]/smaps now contain:
"""
/proc/[pid]/smaps (since Linux 2.6.14)
This file shows memory consumption for each of the process's mappings. For
each of mappings there is a series of lines such as the following:
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
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB
VmFlags: rd ex mr mw me dw
The first of these lines shows the same information as is displayed for the
mapping in /proc/[pid]/maps. The following lines show the size of the map‐
ping, the amount of the mapping that is currently resident in RAM ("Rss"),
the process's 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" line (available since Linux 2.6.29) is the page size
used by the kernel to back the virtual memory area. 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 64kB as a base page size may
still use 4kB pages for the MMU on older processors. To distinguish the two
attributes, the "MMUPageSize" line (also available since Linux 2.6.29)
reports the page size used by the MMU.
The "Locked" indicates whether the mapping is locked in memory or not.
The "VmFlags" line (available since Linux 3.8) represents the kernel flags
associated with the virtual memory area, encoded using the following two-
letter codes:
rd - readable
wr - writable
ex - executable
sh - shared
mr - may read
mw - may write
me - may execute
ms - may share
gd - stack segment grows 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 - mergeable advise flag
The /proc/[pid]/smaps file is present only if the CONFIG_PROC_PAGE_MONITOR
kernel configuration option is enabled.
"""
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2018:3254 |