RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1607318 - fields missing in the proc man page
Summary: fields missing in the proc man page
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: man-pages-overrides
Version: 7.5
Hardware: Unspecified
OS: Linux
unspecified
low
Target Milestone: rc
: ---
Assignee: Nikola Forró
QA Contact: Jan Houska
URL:
Whiteboard:
Depends On:
Blocks: 1619613
TreeView+ depends on / blocked
 
Reported: 2018-07-23 09:34 UTC by Yaniv Ferszt
Modified: 2021-12-10 16:44 UTC (History)
4 users (show)

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.
Clone Of:
Environment:
Last Closed: 2018-10-30 11:34:51 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2018:3254 0 None None None 2018-10-30 11:35:39 UTC

Description Yaniv Ferszt 2018-07-23 09:34:56 UTC
Description of problem:
-----------------------
there are some fields missing in the proc man page on RHEL 7.5. Specifically in the section for /proc/[pid]/status the fields

Additional info:
----------------
there are some fields missing in the proc man page on RHEL 7.5. Specifically in the section for /proc/[pid]/status the fields

Umask
Ngid
VmPin
RssAnon
RssFile
RssShmem
CapAmb
Seccomp
Speculation_Store_Bypass

are missing.
In the section /proc/[pid]/smaps the fields

Pss
Referenced
Anonymous
AnonHugePages
Swap
KernelPageSize
MMUPageSize
Locked
VmFlags

are missing, while all those fields exist in /proc/[pid]/. I did not check the other sections, but I guess that there will be other fields missing too.

Comment 3 Nikola Forró 2018-07-23 12:36:44 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.

Comment 7 Jan Houska 2018-08-28 12:56:33 UTC
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.
"""

Comment 10 errata-xmlrpc 2018-10-30 11:34:51 UTC
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


Note You need to log in before you can comment on or make changes to this bug.