Lines Matching +full:proc +full:- +full:id

1 .. SPDX-License-Identifier: GPL-2.0
4 The /proc Filesystem
8 /proc/sys Terrehon Bowden <terrehon@pacbell.net>, October 7 1999
11 move /proc/sys Shen Feng <shen@cn.fujitsu.com> April 1 2009
24 1.1 Process-Specific Subdirectories
26 1.3 IDE devices in /proc/ide
27 1.4 Networking info in /proc/net
29 1.6 Parallel port info in /proc/parport
30 1.7 TTY info in /proc/tty
31 1.8 Miscellaneous kernel statistics in /proc/stat
36 3 Per-Process Parameters
37 3.1 /proc/<pid>/oom_adj & /proc/<pid>/oom_score_adj - Adjust the oom-killer
39 3.2 /proc/<pid>/oom_score - Display current oom-killer score
40 3.3 /proc/<pid>/io - Display the IO accounting fields
41 3.4 /proc/<pid>/coredump_filter - Core dump filtering settings
42 3.5 /proc/<pid>/mountinfo - Information about mounts
43 3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm
44 3.7 /proc/<pid>/task/<tid>/children - Information about task children
45 3.8 /proc/<pid>/fdinfo/<fd> - Information about opened file
46 3.9 /proc/<pid>/map_files - Information about memory mapped files
47 3.10 /proc/<pid>/timerslack_ns - Task timerslack value
48 3.11 /proc/<pid>/patch_state - Livepatch patch operation state
49 3.12 /proc/<pid>/arch_status - Task architecture specific information
50 3.13 /proc/<pid>/fd - List of symlinks to open files
51 3.14 /proc/<pid/ksm_stat - Information about the process's ksm status.
62 ------------------------
66 /proc file system and we've used many freely available sources to write these
70 we know, it is the first 'all-in-one' document about the /proc file system. It
73 It also only covers IPv4 networking, not IPv6 nor other protocols - sorry. But
89 https://www.kernel.org/doc/html/latest/filesystems/proc.html
92 mailing list at linux-kernel@vger.kernel.org and/or try to reach me at
96 ---------------
106 ---------------
107 * Investigating the properties of the pseudo file system /proc and its
109 * Examining /proc's structure
113 ------------------------------------------------------------------------------
115 The proc file system acts as an interface to internal data structures in the
119 First, we'll take a look at the read-only parts of /proc. In Chapter 2, we
120 show you how you can use /proc/sys to change settings.
122 1.1 Process-Specific Subdirectories
123 -----------------------------------
125 The directory /proc contains (among other things) one subdirectory for each
126 process running on the system, which is named after the process ID (PID).
129 subdirectory has the entries listed in Table 1-1.
131 A process can read its own information from /proc/PID/* with no extra
132 permissions. When reading /proc/PID/* information for other processes, reading
135 capability. This applies to all read-only information like `maps`, `environ`,
136 `pagemap`, etc. The only exception is `mem` file due to its read-write nature,
139 to /proc/PID/mem for other processes.
141 Note that an open file descriptor to /proc/<pid> or to any of its
144 open /proc/<pid> file descriptors corresponding to dead processes
146 also assigned the process ID <pid>. Instead, operations on these FDs
149 .. table:: Table 1-1: Process specific entries in /proc
168 symbol the task is blocked in - or "0" if not blocked.
180 read the file /proc/PID/status::
182 >cat /proc/self/status
231 the ps command. In fact, ps uses the proc file system to obtain its
233 file /proc/PID/status. It fields are described in table 1-2.
236 memory usage. Its seven fields are explained in Table 1-3. The stat file
238 explained in Table 1-4.
244 snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table.
247 .. table:: Table 1-2: Contents of the status fields (as of 4.19)
257 Tgid thread group ID
258 Ngid NUMA group ID (0 if none)
259 Pid process id
260 PPid process id of the parent process
267 NStgid descendant namespace thread group ID hierarchy
268 NSpid descendant namespace process ID hierarchy
269 NSpgid descendant namespace process group ID hierarchy
270 NSsid descendant namespace session ID hierarchy
321 .. table:: Table 1-3: Contents of the statm fields (as of 2.6.8-rc3)
339 .. table:: Table 1-4: Contents of the stat fields (as of 2.6.30-rc7)
344 pid process id
348 ppid process id of the parent process
350 sid session id
380 use /proc/PID/wchan instead)
401 The /proc/PID/maps file contains the currently mapped memory regions and
408 08048000-08049000 r-xp 00000000 03:00 8312 /opt/test
409 08049000-0804a000 rw-p 00001000 03:00 8312 /opt/test
410 0804a000-0806b000 rw-p 00000000 00:00 0 [heap]
411 a7cb1000-a7cb2000 ---p 00000000 00:00 0
412 a7cb2000-a7eb2000 rw-p 00000000 00:00 0
413 a7eb2000-a7eb3000 ---p 00000000 00:00 0
414 a7eb3000-a7ed5000 rw-p 00000000 00:00 0
415 a7ed5000-a8008000 r-xp 00000000 03:00 4222 /lib/libc.so.6
416 a8008000-a800a000 r--p 00133000 03:00 4222 /lib/libc.so.6
417 a800a000-a800b000 rw-p 00135000 03:00 4222 /lib/libc.so.6
418 a800b000-a800e000 rw-p 00000000 00:00 0
419 a800e000-a8022000 r-xp 00000000 03:00 14462 /lib/libpthread.so.0
420 a8022000-a8023000 r--p 00013000 03:00 14462 /lib/libpthread.so.0
421 a8023000-a8024000 rw-p 00014000 03:00 14462 /lib/libpthread.so.0
422 a8024000-a8027000 rw-p 00000000 00:00 0
423 a8027000-a8043000 r-xp 00000000 03:00 8317 /lib/ld-linux.so.2
424 a8043000-a8044000 r--p 0001b000 03:00 8317 /lib/ld-linux.so.2
425 a8044000-a8045000 rw-p 0001c000 03:00 8317 /lib/ld-linux.so.2
426 aff35000-aff4a000 rw-p 00000000 00:00 0 [stack]
427 ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso]
457 Starting with 6.11 kernel, /proc/PID/maps provides an alternative
458 ioctl()-based API that gives ability to flexibly and efficiently query and
466 The /proc/PID/smaps is an extension based on maps, showing the memory
470 08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bash
499 the mapping in /proc/PID/maps. Following lines show the size of the
542 "KSM" reports how many of the pages are KSM pages. Note that KSM-placed zeropages
560 "Swap" shows how much would-be-anonymous memory is also used, but out on swap.
563 replaced by copy-on-write) part of the underlying shmem object out on swap.
609 uw userfaultfd wr-protect tracking
616 be vanished or the reverse -- new added. Interpretation of their meaning
623 Note: reading /proc/PID/maps or /proc/PID/smaps is inherently racy (consistent
635 The /proc/PID/smaps_rollup file includes the same fields as /proc/PID/smaps,
639 - Pss_Anon
640 - Pss_File
641 - Pss_Shmem
649 The /proc/PID/clear_refs is used to reset the PG_Referenced and ACCESSED/YOUNG
651 soft-dirty bit on pte (see Documentation/admin-guide/mm/soft-dirty.rst
655 > echo 1 > /proc/PID/clear_refs
659 > echo 2 > /proc/PID/clear_refs
663 > echo 3 > /proc/PID/clear_refs
665 To clear the soft-dirty bit::
667 > echo 4 > /proc/PID/clear_refs
672 > echo 5 > /proc/PID/clear_refs
674 Any other value written to /proc/PID/clear_refs will have no effect.
676 The /proc/pid/pagemap gives the PFN, which can be used to find the pageflags
677 using /proc/kpageflags and number of times a page is mapped using
678 /proc/kpagecount. For detailed explanation, see
679 Documentation/admin-guide/mm/pagemap.rst.
681 The /proc/pid/numa_maps is an extension based on maps, showing the memory
690 3206000000 default file=/lib64/ld-2.12.so mapped=26 mapmax=6 N0=24 N3=2 kernelpagesize_kB=4
691 320621f000 default file=/lib64/ld-2.12.so anon=1 dirty=1 N3=1 kernelpagesize_kB=4
692 3206220000 default file=/lib64/ld-2.12.so anon=1 dirty=1 N3=1 kernelpagesize_kB=4
694 …3206800000 default file=/lib64/libc-2.12.so mapped=59 mapmax=21 active=55 N0=41 N3=18 kernelpagesi…
695 320698b000 default file=/lib64/libc-2.12.so
696 3206b8a000 default file=/lib64/libc-2.12.so anon=2 dirty=2 N3=2 kernelpagesize_kB=4
697 3206b8e000 default file=/lib64/libc-2.12.so anon=1 dirty=1 N3=1 kernelpagesize_kB=4
709 "policy" reports the NUMA memory policy set for the mapping (see Documentation/admin-guide/mm/numa_…
721 ---------------
725 /proc and are listed in Table 1-5. Not all of these will be present in your
729 .. table:: Table 1-5: Kernel info in /proc
778 pci Deprecated info of PCI bus (new way -> /proc/bus/pci/,
796 they are used for by looking in the file /proc/interrupts::
798 > cat /proc/interrupts
800 0: 8728810 XT-PIC timer
801 1: 895 XT-PIC keyboard
802 2: 0 XT-PIC cascade
803 3: 531695 XT-PIC aha152x
804 4: 2014133 XT-PIC serial
805 5: 44401 XT-PIC pcnet_cs
806 8: 2 XT-PIC rtc
807 11: 8 XT-PIC i82365
808 12: 182918 XT-PIC PS/2 Mouse
809 13: 1 XT-PIC fpu
810 14: 1232265 XT-PIC ide0
811 15: 7 XT-PIC ide1
817 > cat /proc/interrupts
820 0: 1243498 1214548 IO-APIC-edge timer
821 1: 8949 8958 IO-APIC-edge keyboard
822 2: 0 0 XT-PIC cascade
823 5: 11286 10161 IO-APIC-edge soundblaster
824 8: 1 0 IO-APIC-edge rtc
825 9: 27422 27407 IO-APIC-edge 3c503
826 12: 113645 113873 IO-APIC-edge PS/2 Mouse
827 13: 0 0 XT-PIC fpu
828 14: 22491 24012 IO-APIC-edge ide0
829 15: 2183 2415 IO-APIC-edge ide1
830 17: 30564 30414 IO-APIC-level eth0
831 18: 177 164 IO-APIC-level bttv
841 ERR is incremented in the case of errors in the IO-APIC bus (the bus that
843 the IO-APIC automatically retry the transmission, so it should not be a big
844 problem, but you should read the SMP-FAQ.
846 In 2.6.2* /proc/interrupts was expanded again. This time the goal was for
847 /proc/interrupts to display every IRQ vector in use by the system, not
878 Of some interest is the introduction of the /proc/irq directory to 2.4.
886 > ls /proc/irq/
889 > ls /proc/irq/0/
895 > echo 1 > /proc/irq/10/smp_affinity
902 > cat /proc/irq/0/smp_affinity
908 > cat /proc/irq/0/smp_affinity_list
909 1024-1031
911 The default_smp_affinity mask applies to all non-active IRQs, which are the
913 /proc/irq/[0-9]* directory.
922 The way IRQs are routed is handled by the IO-APIC, and it's Round Robin
925 best choice for almost everyone. [Note this applies only to those IO-APIC's
928 There are three more important subdirectories in /proc: net, scsi, and sys.
941 > cat /proc/buddyinfo
960 > cat /proc/pagetypeinfo
983 X86-64. By keeping pages grouped based on their ability to move, the kernel
984 can reclaim pages within a page block to satisfy a high-order allocation.
988 by migrate-type and finishes with details on how many page blocks of each
1014 > tail -n +3 /proc/allocinfo | sort -rn
1019 13377536 234 block/blk-mq.c:3421 func:blk_mq_alloc_rqs
1038 /proc/net/sockstat for TCP memory allocations.
1044 > cat /proc/meminfo
1124 In-memory cache for files read from the disk (the
1168 Non-file backed pages mapped into userspace page tables. Note that
1184 in-kernel data structures cache
1212 CommitLimit = ([total RAM pages] - [total huge TLB pages]) *
1220 in mm/overcommit-accounting.
1255 Non-file backed huge pages mapped into userspace page tables
1275 See Documentation/admin-guide/mm/hugetlbpage.rst.
1302 > cat /proc/vmallocinfo
1303 0xffffc20000000000-0xffffc20000201000 2101248 alloc_large_system_hash+0x204 ...
1305 0xffffc20000201000-0xffffc20000302000 1052672 alloc_large_system_hash+0x204 ...
1307 0xffffc20000302000-0xffffc20000304000 8192 acpi_tb_verify_table+0x21/0x4f...
1309 0xffffc20000304000-0xffffc20000307000 12288 acpi_tb_verify_table+0x21/0x4f...
1311 0xffffc2000031d000-0xffffc2000031f000 8192 init_vdso_vars+0x112/0x210
1312 0xffffc2000031f000-0xffffc2000032b000 49152 cramfs_uncompress_init+0x2e ...
1314 0xffffc2000033a000-0xffffc2000033d000 12288 sys_swapon+0x640/0xac0 ...
1316 0xffffc20000347000-0xffffc2000034c000 20480 xt_alloc_table_info+0xfe ...
1318 0xffffffffa0000000-0xffffffffa000f000 61440 sys_init_module+0xc27/0x1d00 ...
1320 0xffffffffa000f000-0xffffffffa0014000 20480 sys_init_module+0xc27/0x1d00 ...
1322 0xffffffffa0014000-0xffffffffa0017000 12288 sys_init_module+0xc27/0x1d00 ...
1324 0xffffffffa0017000-0xffffffffa0022000 45056 sys_init_module+0xc27/0x1d00 ...
1335 > cat /proc/softirqs
1347 1.3 Networking info in /proc/net
1348 --------------------------------
1350 The subdirectory /proc/net follows the usual pattern. Table 1-8 shows the
1352 support this. Table 1-9 lists the files and their meaning.
1355 .. table:: Table 1-8: IPv6 info in /proc/net
1371 .. table:: Table 1-9: Network info in /proc/net
1393 softnet_stat Per-CPU incoming packets queues statistics of online CPUs
1408 > cat /proc/net/dev
1409 Inter-|Receive |[...
1422 example, the bond0 device will have a directory called /proc/net/bond0/.
1428 -------------
1431 subdirectory named after the driver for this adapter in /proc/scsi.
1432 You'll also see a list of all recognized SCSI devices in /proc/scsi::
1434 >cat /proc/scsi/scsi
1436 Host: scsi0 Channel: 00 Id: 00 Lun: 00
1438 Type: Direct-Access ANSI SCSI revision: 03
1439 Host: scsi0 Channel: 00 Id: 06 Lun: 00
1440 Vendor: PIONEER Model: CD-ROM DR-U06S Rev: 1.04
1441 Type: CD-ROM ANSI SCSI revision: 02
1448 AHA-2940 SCSI adapter::
1450 > cat /proc/scsi/aic7xxx/0
1458 SCSI Adapter: Adaptec AHA-294X Ultra SCSI host adapter
1490 1.5 Parallel port info in /proc/parport
1491 ---------------------------------------
1493 The directory /proc/parport contains information about the parallel ports of
1497 These directories contain the four files shown in Table 1-10.
1500 .. table:: Table 1-10: Files in /proc/parport
1505 autoprobe Any IEEE-1284 device ID information that has been acquired.
1515 1.6 TTY info in /proc/tty
1516 -------------------------
1519 directory /proc/tty. You'll find entries for drivers and line disciplines in
1520 this directory, as shown in Table 1-11.
1523 .. table:: Table 1-11: Files in /proc/tty
1534 /proc/tty/drivers::
1536 > cat /proc/tty/drivers
1537 pty_slave /dev/pts 136 0-255 pty:slave
1538 pty_master /dev/ptm 128 0-255 pty:master
1539 pty_slave /dev/ttyp 3 0-255 pty:slave
1540 pty_master /dev/pty 2 0-255 pty:master
1541 serial /dev/cua 5 64-67 serial:callout
1542 serial /dev/ttyS 4 64-67 serial
1547 unknown /dev/tty 4 1-63 console
1550 1.7 Miscellaneous kernel statistics in /proc/stat
1551 -------------------------------------------------
1554 /proc/stat file. All of the numbers reported in this file are aggregates
1557 > cat /proc/stat
1576 - user: normal processes executing in user mode
1577 - nice: niced processes executing in user mode
1578 - system: processes executing in kernel mode
1579 - idle: twiddling thumbs
1580 - iowait: In a word, iowait stands for waiting for I/O to complete. But there
1586 2. In a multi-core CPU, the task waiting for I/O to complete is not running
1588 3. The value of iowait field in /proc/stat will decrease in certain
1591 So, the iowait is not reliable by reading from /proc/stat.
1592 - irq: servicing interrupts
1593 - softirq: servicing softirqs
1594 - steal: involuntary wait
1595 - guest: running a normal guest
1596 - guest_nice: running a niced guest
1626 -------------------------------
1629 /proc/fs/ext4. Each mounted filesystem will have a directory in
1630 /proc/fs/ext4 based on its device name (i.e., /proc/fs/ext4/hdc or
1631 /proc/fs/ext4/sda9 or /proc/fs/ext4/dm-0). The files in each per-device
1632 directory are shown in Table 1-12, below.
1634 .. table:: Table 1-12: Files in /proc/fs/ext4/<devname>
1641 1.9 /proc/consoles
1642 -------------------
1646 /dev/console, you may simply look into the file /proc/consoles::
1648 > cat /proc/consoles
1649 tty0 -WU (ECp) 4:7
1650 ttyS0 -W- (Ep) 4:64
1654 +--------------------+-------------------------------------------------------+
1660 +--------------------+-------------------------------------------------------+
1667 +--------------------+-------------------------------------------------------+
1670 +--------------------+-------------------------------------------------------+
1673 -------
1675 The /proc file system serves information about the running system. It not only
1679 The directory structure of /proc reflects the types of information and makes
1686 ---------------
1688 * Modifying kernel parameters by writing into files found in /proc/sys
1690 * Review of the /proc/sys file tree
1692 ------------------------------------------------------------------------------
1694 A very interesting part of /proc is the directory /proc/sys. This is not only
1706 The files in /proc/sys can be used to fine tune and monitor miscellaneous and
1710 very careful when writing to any of these files. The entries in /proc may
1716 Please see: Documentation/admin-guide/sysctl/ directory for descriptions of
1720 -------
1724 /proc/sys tree can not only be read, but also modified. You can use the echo
1729 Chapter 3: Per-process Parameters
1732 3.1 /proc/<pid>/oom_adj & /proc/<pid>/oom_score_adj- Adjust the oom-killer score
1733 --------------------------------------------------------------------------------
1754 The value of /proc/<pid>/oom_score_adj is added to the badness score before it
1755 is used to determine which task to kill. Acceptable values range from -1000
1758 task or completely disabling it. The lowest possible value, -1000, is
1763 consider for each task. Setting a /proc/<pid>/oom_score_adj value of +500, for
1766 50% more memory. A value of -500, on the other hand, would be roughly
1770 For backwards compatibility with previous kernels, /proc/<pid>/oom_adj may also
1771 be used to tune the badness score. Its acceptable values range from -16
1772 (OOM_ADJUST_MIN) to +15 (OOM_ADJUST_MAX) and a special value of -17
1774 scaled linearly with /proc/<pid>/oom_score_adj.
1776 The value of /proc/<pid>/oom_score_adj may be reduced no lower than the last
1781 3.2 /proc/<pid>/oom_score - Display current oom-killer score
1782 -------------------------------------------------------------
1784 This file can be used to check the current score used by the oom-killer for
1785 any given <pid>. Use it together with /proc/<pid>/oom_score_adj to tune which
1786 process should be killed in an out-of-memory situation.
1792 3.3 /proc/<pid>/io - Display the IO accounting fields
1793 -------------------------------------------------------
1805 test:/tmp # cat /proc/3828/io
1859 accurate for block-backed filesystems. <please add status regarding NFS and
1868 the storage layer. This is done at page-dirtying time.
1887 At its current implementation state, this is a bit racy on 32-bit machines:
1888 if process A reads process B's /proc/pid/io while process B is updating one
1889 of those 64-bit counters, process A could see an intermediate result.
1895 3.4 /proc/<pid>/coredump_filter - Core dump filtering settings
1896 ---------------------------------------------------------------
1900 Conversely, sometimes we want to save file-backed memory segments into a core
1903 /proc/<pid>/coredump_filter allows you to customize which memory segments
1910 - (bit 0) anonymous private memory
1911 - (bit 1) anonymous shared memory
1912 - (bit 2) file-backed private memory
1913 - (bit 3) file-backed shared memory
1914 - (bit 4) ELF header pages in file-backed private memory areas (it is
1916 - (bit 5) hugetlb private memory
1917 - (bit 6) hugetlb shared memory
1918 - (bit 7) DAX private memory
1919 - (bit 8) DAX shared memory
1924 Note that bits 0-4 don't affect hugetlb or DAX memory. hugetlb memory is
1925 only affected by bit 5-6, and DAX is only affected by bits 7-8.
1931 write 0x31 to the process's proc file::
1933 $ echo 0x31 > /proc/1234/coredump_filter
1939 $ echo 0x7 > /proc/self/coredump_filter
1942 3.5 /proc/<pid>/mountinfo - Information about mounts
1943 --------------------------------------------------------
1947 36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
1950 (1) mount ID: unique identifier of the mount (may be reused after umount)
1951 (2) parent ID: ID of parent (or of self for the top of the mount tree)
1982 3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm
1983 --------------------------------------------------------
1991 3.7 /proc/<pid>/task/<tid>/children - Information about task children
1992 -------------------------------------------------------------------------
1997 Note the "first level" here -- if a child has its own children they will
1998 not be listed here; one needs to read /proc/<children-pid>/task/<tid>/children
2008 3.8 /proc/<pid>/fdinfo/<fd> - Information about opened file
2009 ---------------------------------------------------------------
2011 files have at least four fields -- 'pos', 'flags', 'mnt_id' and 'ino'.
2015 mount ID of the file system containing the opened file [see 3.5
2016 /proc/<pid>/mountinfo for details]. 'ino' represents the inode number of
2042 eventfd-count: 5a
2044 where 'eventfd-count' is hex value of a counter.
2087 …inotify wd:3 ino:9e7e sdev:800013 mask:800afce ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_han…
2096 fields 'fhandle-bytes', 'fhandle-type' and 'f_handle', all in hex
2110 fanotify flags:10 event-flags:0
2112 …fanotify ino:4f969 sdev:800013 mflags:0 mask:3b ignored_mask:40000000 fhandle-bytes:8 fhandle-type…
2114 where fanotify 'flags' and 'event-flags' are values used in fanotify_init
2160 exp_name: system-heap
2165 3.9 /proc/<pid>/map_files - Information about memory mapped files
2166 ---------------------------------------------------------------------
2170 | lr-------- 1 root root 64 Jan 27 11:24 333c600000-333c620000 -> /usr/lib64/ld-2.18.so
2171 | lr-------- 1 root root 64 Jan 27 11:24 333c81f000-333c820000 -> /usr/lib64/ld-2.18.so
2172 | lr-------- 1 root root 64 Jan 27 11:24 333c820000-333c821000 -> /usr/lib64/ld-2.18.so
2174 | lr-------- 1 root root 64 Jan 27 11:24 35d0421000-35d0422000 -> /usr/lib64/libselinux.so.1
2175 | lr-------- 1 root root 64 Jan 27 11:24 400000-41a000 -> /usr/bin/ls
2178 vm_area_struct::vm_start-vm_area_struct::vm_end.
2181 files in a fast way instead of parsing /proc/<pid>/maps or
2182 /proc/<pid>/smaps, both of which contain many more records. At the same
2187 3.10 /proc/<pid>/timerslack_ns - Task timerslack value
2188 ---------------------------------------------------------
2198 Valid values are from 0 - ULLONG_MAX
2203 3.11 /proc/<pid>/patch_state - Livepatch patch operation state
2204 -----------------------------------------------------------------
2208 A value of '-1' indicates that no patch is in transition.
2220 3.12 /proc/<pid>/arch_status - task architecture specific status
2221 -------------------------------------------------------------------
2230 $ cat /proc/6753/arch_status
2261 A special value of '-1' indicates that no AVX512 usage was recorded, thus
2265 3.13 /proc/<pid>/fd - List of symlinks to open files
2266 -------------------------------------------------------
2270 lr-x------ 1 root root 64 Sep 20 17:53 0 -> /dev/null
2271 l-wx------ 1 root root 64 Sep 20 17:53 1 -> /dev/null
2272 lrwx------ 1 root root 64 Sep 20 17:53 10 -> 'socket:[12539]'
2273 lrwx------ 1 root root 64 Sep 20 17:53 11 -> 'socket:[12540]'
2274 lrwx------ 1 root root 64 Sep 20 17:53 12 -> 'socket:[12542]'
2277 of stat() output for /proc/<pid>/fd for fast access.
2278 -------------------------------------------------------
2280 3.14 /proc/<pid/ksm_stat - Information about the process's ksm status
2281 ---------------------------------------------------------------------
2290 / # cat /proc/self/ksm_stat
2306 addresses. KSM will generate a ksm_rmap_item for each ksm-scanned page of
2320 /proc/<pid>/ksm_merging_pages shows.
2346 Documentation/admin-guide/mm/ksm.rst.
2353 ---------------------
2358 hidepid= Set /proc/<pid>/ access mode.
2363 hidepid=off or hidepid=0 means classic mode - everybody may access all
2364 /proc/<pid>/ directories (default).
2366 hidepid=noaccess or hidepid=1 means users may not access any /proc/<pid>/
2370 behaviour). As an additional bonus, as /proc/<pid>/cmdline is unaccessible for
2374 hidepid=invisible or hidepid=2 means hidepid=1 plus all /proc/<pid>/ will be
2377 by "kill -0 $PID"), but it hides process's uid and gid, which may be learned by
2378 stat()'ing /proc/<pid>/ otherwise. It greatly complicates an intruder's task of
2384 /proc/<pid>/ directories that the caller can ptrace.
2403 # grep ^proc /proc/mounts
2404 proc /proc proc rw,relatime,hidepid=2 0 0
2406 # strace -e mount mount -o hidepid=1 -t proc proc /tmp/proc
2407 mount("proc", "/tmp/proc", "proc", 0, "hidepid=1") = 0
2410 # grep ^proc /proc/mounts
2411 proc /proc proc rw,relatime,hidepid=2 0 0
2412 proc /tmp/proc proc rw,relatime,hidepid=2 0 0
2417 # mount -o remount,hidepid=1 -t proc proc /tmp/proc
2419 # grep ^proc /proc/mounts
2420 proc /proc proc rw,relatime,hidepid=1 0 0
2421 proc /tmp/proc proc rw,relatime,hidepid=1 0 0
2430 # mount -o hidepid=invisible -t proc proc /proc
2431 # mount -o hidepid=noaccess -t proc proc /tmp/proc
2432 # grep ^proc /proc/mounts
2433 proc /proc proc rw,relatime,hidepid=invisible 0 0
2434 proc /tmp/proc proc rw,relatime,hidepid=noaccess 0 0