Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 349888ee authored by Stefani Seibold's avatar Stefani Seibold Committed by Linus Torvalds
Browse files

proc.txt: update kernel filesystem/proc.txt documentation



An update for the "Process-Specific Subdirectories" section to reflect the
changes till kernel 2.6.30.

Signed-off-by: default avatarStefani Seibold <stefani@seibold.net>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 2f6d3110
Loading
Loading
Loading
Loading
+190 −52
Original line number Original line Diff line number Diff line
@@ -10,6 +10,7 @@ move /proc/sys Shen Feng <shen@cn.fujitsu.com> April 1 2009
Version 1.3                                              Kernel version 2.2.12
Version 1.3                                              Kernel version 2.2.12
					      Kernel version 2.4.0-test11-pre4
					      Kernel version 2.4.0-test11-pre4
------------------------------------------------------------------------------
------------------------------------------------------------------------------
fixes/update part 1.1  Stefani Seibold <stefani@seibold.net>       June 9 2009


Table of Contents
Table of Contents
-----------------
-----------------
@@ -134,7 +135,8 @@ Table 1-1: Process specific entries in /proc
 status		Process status in human readable form
 status		Process status in human readable form
 wchan		If CONFIG_KALLSYMS is set, a pre-decoded wchan
 wchan		If CONFIG_KALLSYMS is set, a pre-decoded wchan
 stack		Report full stack trace, enable via CONFIG_STACKTRACE
 stack		Report full stack trace, enable via CONFIG_STACKTRACE
 smaps		Extension based on maps, the rss size for each mapped file
 smaps		a extension based on maps, showing the memory consumption of
		each mapping
..............................................................................
..............................................................................


For example, to get the status information of a process, all you have to do is
For example, to get the status information of a process, all you have to do is
@@ -143,37 +145,93 @@ read the file /proc/PID/status:
  >cat /proc/self/status
  >cat /proc/self/status
  Name:   cat
  Name:   cat
  State:  R (running)
  State:  R (running)
  Tgid:   5452
  Pid:    5452
  Pid:    5452
  PPid:   743
  PPid:   743
  TracerPid:      0						(2.4)
  TracerPid:      0						(2.4)
  Uid:    501     501     501     501
  Uid:    501     501     501     501
  Gid:    100     100     100     100
  Gid:    100     100     100     100
  FDSize: 256
  Groups: 100 14 16
  Groups: 100 14 16
  VmSize:     1112 kB 
  VmPeak:     5004 kB
  VmSize:     5004 kB
  VmLck:         0 kB
  VmLck:         0 kB
  VmRSS:       348 kB 
  VmHWM:       476 kB
  VmData:       24 kB 
  VmRSS:       476 kB
  VmStk:        12 kB 
  VmData:      156 kB
  VmExe:         8 kB 
  VmStk:        88 kB
  VmLib:      1044 kB 
  VmExe:        68 kB
  VmLib:      1412 kB
  VmPTE:        20 kb
  Threads:        1
  SigQ:   0/28578
  SigPnd: 0000000000000000
  SigPnd: 0000000000000000
  ShdPnd: 0000000000000000
  SigBlk: 0000000000000000
  SigBlk: 0000000000000000
  SigIgn: 0000000000000000
  SigIgn: 0000000000000000
  SigCgt: 0000000000000000
  SigCgt: 0000000000000000
  CapInh: 00000000fffffeff
  CapInh: 00000000fffffeff
  CapPrm: 0000000000000000
  CapPrm: 0000000000000000
  CapEff: 0000000000000000
  CapEff: 0000000000000000

  CapBnd: ffffffffffffffff
  voluntary_ctxt_switches:        0
  nonvoluntary_ctxt_switches:     1


This shows you nearly the same information you would get if you viewed it with
This shows you nearly the same information you would get if you viewed it with
the ps  command.  In  fact,  ps  uses  the  proc  file  system  to  obtain its
the ps  command.  In  fact,  ps  uses  the  proc  file  system  to  obtain its
information. The  statm  file  contains  more  detailed  information about the
information.  But you get a more detailed  view of the  process by reading the
process memory usage. Its seven fields are explained in Table 1-2.  The stat
file /proc/PID/status. It fields are described in table 1-2.
file contains details information about the process itself.  Its fields are

explained in Table 1-3.
The  statm  file  contains  more  detailed  information about the process
memory usage. Its seven fields are explained in Table 1-3.  The stat file
contains details information about the process itself.  Its fields are
explained in Table 1-4.


Table 1-2: Contents of the statm files (as of 2.6.30-rc7)
..............................................................................
 Field                       Content
 Name                        filename of the executable
 State                       state (R is running, S is sleeping, D is sleeping
                             in an uninterruptible wait, Z is zombie,
			     T is traced or stopped)
 Tgid                        thread group ID
 Pid                         process id
 PPid                        process id of the parent process
 TracerPid                   PID of process tracing this process (0 if not)
 Uid                         Real, effective, saved set, and  file system UIDs
 Gid                         Real, effective, saved set, and  file system GIDs
 FDSize                      number of file descriptor slots currently allocated
 Groups                      supplementary group list
 VmPeak                      peak virtual memory size
 VmSize                      total program size
 VmLck                       locked memory size
 VmHWM                       peak resident set size ("high water mark")
 VmRSS                       size of memory portions
 VmData                      size of data, stack, and text segments
 VmStk                       size of data, stack, and text segments
 VmExe                       size of text segment
 VmLib                       size of shared library code
 VmPTE                       size of page table entries
 Threads                     number of threads
 SigQ                        number of signals queued/max. number for queue
 SigPnd                      bitmap of pending signals for the thread
 ShdPnd                      bitmap of shared pending signals for the process
 SigBlk                      bitmap of blocked signals
 SigIgn                      bitmap of ignored signals
 SigCgt                      bitmap of catched signals
 CapInh                      bitmap of inheritable capabilities
 CapPrm                      bitmap of permitted capabilities
 CapEff                      bitmap of effective capabilities
 CapBnd                      bitmap of capabilities bounding set
 Cpus_allowed                mask of CPUs on which this process may run
 Cpus_allowed_list           Same as previous, but in "list format"
 Mems_allowed                mask of memory nodes allowed to this process
 Mems_allowed_list           Same as previous, but in "list format"
 voluntary_ctxt_switches     number of voluntary context switches
 nonvoluntary_ctxt_switches  number of non voluntary context switches
..............................................................................


Table 1-2: Contents of the statm files (as of 2.6.8-rc3)
Table 1-3: Contents of the statm files (as of 2.6.8-rc3)
..............................................................................
..............................................................................
 Field    Content
 Field    Content
 size     total program size (pages)		(same as VmSize in status)
 size     total program size (pages)		(same as VmSize in status)
@@ -188,7 +246,7 @@ Table 1-2: Contents of the statm files (as of 2.6.8-rc3)
..............................................................................
..............................................................................




Table 1-3: Contents of the stat files (as of 2.6.22-rc3)
Table 1-4: Contents of the stat files (as of 2.6.30-rc7)
..............................................................................
..............................................................................
 Field          Content
 Field          Content
  pid           process id
  pid           process id
@@ -222,10 +280,10 @@ Table 1-3: Contents of the stat files (as of 2.6.22-rc3)
  start_stack   address of the start of the stack
  start_stack   address of the start of the stack
  esp           current value of ESP
  esp           current value of ESP
  eip           current value of EIP
  eip           current value of EIP
  pending       bitmap of pending signals (obsolete)
  pending       bitmap of pending signals
  blocked       bitmap of blocked signals (obsolete)
  blocked       bitmap of blocked signals
  sigign        bitmap of ignored signals (obsolete)
  sigign        bitmap of ignored signals
  sigcatch      bitmap of catched signals (obsolete)
  sigcatch      bitmap of catched signals
  wchan         address where process went to sleep
  wchan         address where process went to sleep
  0             (place holder)
  0             (place holder)
  0             (place holder)
  0             (place holder)
@@ -234,19 +292,99 @@ Table 1-3: Contents of the stat files (as of 2.6.22-rc3)
  rt_priority   realtime priority
  rt_priority   realtime priority
  policy        scheduling policy (man sched_setscheduler)
  policy        scheduling policy (man sched_setscheduler)
  blkio_ticks   time spent waiting for block IO
  blkio_ticks   time spent waiting for block IO
  gtime         guest time of the task in jiffies
  cgtime        guest time of the task children in jiffies
..............................................................................
..............................................................................


The /proc/PID/map file containing the currently mapped memory regions and
their access permissions.

The format is:

address           perms offset  dev   inode      pathname

08048000-08049000 r-xp 00000000 03:00 8312       /opt/test
08049000-0804a000 rw-p 00001000 03:00 8312       /opt/test
0804a000-0806b000 rw-p 00000000 00:00 0          [heap]
a7cb1000-a7cb2000 ---p 00000000 00:00 0
a7cb2000-a7eb2000 rw-p 00000000 00:00 0
a7eb2000-a7eb3000 ---p 00000000 00:00 0
a7eb3000-a7ed5000 rw-p 00000000 00:00 0
a7ed5000-a8008000 r-xp 00000000 03:00 4222       /lib/libc.so.6
a8008000-a800a000 r--p 00133000 03:00 4222       /lib/libc.so.6
a800a000-a800b000 rw-p 00135000 03:00 4222       /lib/libc.so.6
a800b000-a800e000 rw-p 00000000 00:00 0
a800e000-a8022000 r-xp 00000000 03:00 14462      /lib/libpthread.so.0
a8022000-a8023000 r--p 00013000 03:00 14462      /lib/libpthread.so.0
a8023000-a8024000 rw-p 00014000 03:00 14462      /lib/libpthread.so.0
a8024000-a8027000 rw-p 00000000 00:00 0
a8027000-a8043000 r-xp 00000000 03:00 8317       /lib/ld-linux.so.2
a8043000-a8044000 r--p 0001b000 03:00 8317       /lib/ld-linux.so.2
a8044000-a8045000 rw-p 0001c000 03:00 8317       /lib/ld-linux.so.2
aff35000-aff4a000 rw-p 00000000 00:00 0          [stack]
ffffe000-fffff000 r-xp 00000000 00:00 0          [vdso]

where "address" is the address space in the process that it occupies, "perms"
is a set of permissions:

 r = read
 w = write
 x = execute
 s = shared
 p = private (copy on write)

"offset" is the offset into the mapping, "dev" is the device (major:minor), and
"inode" is the inode  on that device.  0 indicates that  no inode is associated
with the memory region, as the case would be with BSS (uninitialized data).
The "pathname" shows the name associated file for this mapping.  If the mapping
is not associated with a file:

 [heap]                   = the heap of the program
 [stack]                  = the stack of the main process
 [vdso]                   = the "virtual dynamic shared object",
                            the kernel system call handler

 or if empty, the mapping is anonymous.


The /proc/PID/smaps is an extension based on maps, showing the memory
consumption for each of the process's mappings. For each of mappings there
is a series of lines such as the following:

08048000-080bc000 r-xp 00000000 03:02 13130      /bin/bash
Size:               1084 kB
Rss:                 892 kB
Pss:                 374 kB
Shared_Clean:        892 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:          892 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB

The first  of these lines shows  the same information  as is displayed for the
mapping in /proc/PID/maps.  The remaining lines show  the size of the mapping,
the amount of the mapping that is currently resident in RAM, the "proportional
set size” (divide each shared page by the number of processes sharing it), the
number of clean and dirty shared pages in the mapping, and the number of clean
and dirty private pages in the mapping.  The "Referenced" indicates the amount
of memory currently marked as referenced or accessed.

This file is only present if the CONFIG_MMU kernel configuration option is
enabled.


1.2 Kernel data
1.2 Kernel data
---------------
---------------


Similar to  the  process entries, the kernel data files give information about
Similar to  the  process entries, the kernel data files give information about
the running kernel. The files used to obtain this information are contained in
the running kernel. The files used to obtain this information are contained in
/proc and  are  listed  in Table 1-4. Not all of these will be present in your
/proc and  are  listed  in Table 1-5. Not all of these will be present in your
system. It  depends  on the kernel configuration and the loaded modules, which
system. It  depends  on the kernel configuration and the loaded modules, which
files are there, and which are missing.
files are there, and which are missing.


Table 1-4: Kernel info in /proc
Table 1-5: Kernel info in /proc
..............................................................................
..............................................................................
 File        Content                                           
 File        Content                                           
 apm         Advanced power management info                    
 apm         Advanced power management info                    
@@ -634,10 +772,10 @@ IDE devices:


More detailed  information  can  be  found  in  the  controller  specific
More detailed  information  can  be  found  in  the  controller  specific
subdirectories. These  are  named  ide0,  ide1  and  so  on.  Each  of  these
subdirectories. These  are  named  ide0,  ide1  and  so  on.  Each  of  these
directories contains the files shown in table 1-5.
directories contains the files shown in table 1-6.




Table 1-5: IDE controller info in  /proc/ide/ide?
Table 1-6: IDE controller info in  /proc/ide/ide?
..............................................................................
..............................................................................
 File    Content                                 
 File    Content                                 
 channel IDE channel (0 or 1)                    
 channel IDE channel (0 or 1)                    
@@ -647,11 +785,11 @@ Table 1-5: IDE controller info in /proc/ide/ide?
..............................................................................
..............................................................................


Each device  connected  to  a  controller  has  a separate subdirectory in the
Each device  connected  to  a  controller  has  a separate subdirectory in the
controllers directory.  The  files  listed in table 1-6 are contained in these
controllers directory.  The  files  listed in table 1-7 are contained in these
directories.
directories.




Table 1-6: IDE device information
Table 1-7: IDE device information
..............................................................................
..............................................................................
 File             Content                                    
 File             Content                                    
 cache            The cache                                  
 cache            The cache                                  
@@ -693,12 +831,12 @@ the drive parameters:
1.4 Networking info in /proc/net
1.4 Networking info in /proc/net
--------------------------------
--------------------------------


The subdirectory  /proc/net  follows  the  usual  pattern. Table 1-6 shows the
The subdirectory  /proc/net  follows  the  usual  pattern. Table 1-8 shows the
additional values  you  get  for  IP  version 6 if you configure the kernel to
additional values  you  get  for  IP  version 6 if you configure the kernel to
support this. Table 1-7 lists the files and their meaning.
support this. Table 1-9 lists the files and their meaning.




Table 1-6: IPv6 info in /proc/net 
Table 1-8: IPv6 info in /proc/net
..............................................................................
..............................................................................
 File       Content                                               
 File       Content                                               
 udp6       UDP sockets (IPv6)                                    
 udp6       UDP sockets (IPv6)                                    
@@ -713,7 +851,7 @@ Table 1-6: IPv6 info in /proc/net
..............................................................................
..............................................................................




Table 1-7: Network info in /proc/net 
Table 1-9: Network info in /proc/net
..............................................................................
..............................................................................
 File          Content                                                         
 File          Content                                                         
 arp           Kernel  ARP table                                               
 arp           Kernel  ARP table                                               
@@ -837,10 +975,10 @@ The directory /proc/parport contains information about the parallel ports of
your system.  It  has  one  subdirectory  for  each port, named after the port
your system.  It  has  one  subdirectory  for  each port, named after the port
number (0,1,2,...).
number (0,1,2,...).


These directories contain the four files shown in Table 1-8.
These directories contain the four files shown in Table 1-10.




Table 1-8: Files in /proc/parport 
Table 1-10: Files in /proc/parport
..............................................................................
..............................................................................
 File      Content                                                             
 File      Content                                                             
 autoprobe Any IEEE-1284 device ID information that has been acquired.         
 autoprobe Any IEEE-1284 device ID information that has been acquired.         
@@ -858,10 +996,10 @@ Table 1-8: Files in /proc/parport


Information about  the  available  and actually used tty's can be found in the
Information about  the  available  and actually used tty's can be found in the
directory /proc/tty.You'll  find  entries  for drivers and line disciplines in
directory /proc/tty.You'll  find  entries  for drivers and line disciplines in
this directory, as shown in Table 1-9.
this directory, as shown in Table 1-11.




Table 1-9: Files in /proc/tty 
Table 1-11: Files in /proc/tty
..............................................................................
..............................................................................
 File          Content                                        
 File          Content                                        
 drivers       list of drivers and their usage                
 drivers       list of drivers and their usage                
@@ -952,9 +1090,9 @@ Information about mounted ext4 file systems can be found in
/proc/fs/ext4.  Each mounted filesystem will have a directory in
/proc/fs/ext4.  Each mounted filesystem will have a directory in
/proc/fs/ext4 based on its device name (i.e., /proc/fs/ext4/hdc or
/proc/fs/ext4 based on its device name (i.e., /proc/fs/ext4/hdc or
/proc/fs/ext4/dm-0).   The files in each per-device directory are shown
/proc/fs/ext4/dm-0).   The files in each per-device directory are shown
in Table 1-10, below.
in Table 1-12, below.


Table 1-10: Files in /proc/fs/ext4/<devname>
Table 1-12: Files in /proc/fs/ext4/<devname>
..............................................................................
..............................................................................
 File            Content                                        
 File            Content                                        
 mb_groups       details of multiblock allocator buddy cache of free blocks
 mb_groups       details of multiblock allocator buddy cache of free blocks