]> git.ipfire.org Git - thirdparty/man-pages.git/blob - man5/proc.5
1e3c1997490fcdf3436d72a8a00b00dab8c65ec4
[thirdparty/man-pages.git] / man5 / proc.5
1 '\" t
2 .\" Copyright (C) 1994, 1995, Daniel Quinlan <quinlan@yggdrasil.com>
3 .\" Copyright (C) 2002-2008, 2017, Michael Kerrisk <mtk.manpages@gmail.com>
4 .\" and scsi additions from Michael Neuffer (neuffer@mail.uni-mainz.de)
5 .\" and sysctl additions from Andries Brouwer (aeb@cwi.nl)
6 .\" and System V IPC (as well as various other) additions from
7 .\" Michael Kerrisk <mtk.manpages@gmail.com>
8 .\"
9 .\" SPDX-License-Identifier: GPL-2.0-or-later
10 .\"
11 .\" Modified 1995-05-17 by faith@cs.unc.edu
12 .\" Minor changes by aeb and Marty Leisner (leisner@sdsp.mc.xerox.com).
13 .\" Modified 1996-04-13, 1996-07-22 by aeb@cwi.nl
14 .\" Modified 2001-12-16 by rwhron@earthlink.net
15 .\" Modified 2002-07-13 by jbelton@shaw.ca
16 .\" Modified 2002-07-22, 2003-05-27, 2004-04-06, 2004-05-25
17 .\" by Michael Kerrisk <mtk.manpages@gmail.com>
18 .\" 2004-11-17, mtk -- updated notes on /proc/loadavg
19 .\" 2004-12-01, mtk, rtsig-max and rtsig-nr went away in Linux 2.6.8
20 .\" 2004-12-14, mtk, updated 'statm', and fixed error in order of list
21 .\" 2005-05-12, mtk, updated 'stat'
22 .\" 2005-07-13, mtk, added /proc/sys/fs/mqueue/*
23 .\" 2005-09-16, mtk, Added /proc/sys/fs/suid_dumpable
24 .\" 2005-09-19, mtk, added /proc/zoneinfo
25 .\" 2005-03-01, mtk, moved /proc/sys/fs/mqueue/* material to mq_overview.7.
26 .\" 2008-06-05, mtk, Added /proc/[pid]/oom_score, /proc/[pid]/oom_adj,
27 .\" /proc/[pid]/limits, /proc/[pid]/mountinfo, /proc/[pid]/mountstats,
28 .\" and /proc/[pid]/fdinfo/*.
29 .\" 2008-06-19, mtk, Documented /proc/[pid]/status.
30 .\" 2008-07-15, mtk, added /proc/config.gz
31 .\"
32 .TH proc 5 (date) "Linux man-pages (unreleased)"
33 .SH NAME
34 proc \- process information, system information, and sysctl pseudo-filesystem
35 .SH DESCRIPTION
36 The
37 .B proc
38 filesystem is a pseudo-filesystem which provides an interface to
39 kernel data structures.
40 It is commonly mounted at
41 .IR /proc .
42 Typically, it is mounted automatically by the system,
43 but it can also be mounted manually using a command such as:
44 .PP
45 .in +4n
46 .EX
47 mount \-t proc proc /proc
48 .EE
49 .in
50 .PP
51 Most of the files in the
52 .B proc
53 filesystem are read-only,
54 but some files are writable, allowing kernel variables to be changed.
55 .\"
56 .SS Mount options
57 The
58 .B proc
59 filesystem supports the following mount options:
60 .TP
61 .BR hidepid "=\fIn\fP (since Linux 3.3)"
62 .\" commit 0499680a42141d86417a8fbaa8c8db806bea1201
63 This option controls who can access the information in
64 .IR /proc/ pid
65 directories.
66 The argument,
67 .IR n ,
68 is one of the following values:
69 .RS
70 .TP 4
71 0
72 Everybody may access all
73 .IR /proc/ pid
74 directories.
75 This is the traditional behavior,
76 and the default if this mount option is not specified.
77 .TP
78 1
79 Users may not access files and subdirectories inside any
80 .IR /proc/ pid
81 directories but their own (the
82 .IR /proc/ pid
83 directories themselves remain visible).
84 Sensitive files such as
85 .IR /proc/ pid /cmdline
86 and
87 .IR /proc/ pid /status
88 are now protected against other users.
89 This makes it impossible to learn whether any user is running a
90 specific program
91 (so long as the program doesn't otherwise reveal itself by its behavior).
92 .\" As an additional bonus, since
93 .\" .IR /proc/[pid]/cmdline
94 .\" is inaccessible for other users,
95 .\" poorly written programs passing sensitive information via
96 .\" program arguments are now protected against local eavesdroppers.
97 .TP
98 2
99 As for mode 1, but in addition the
100 .IR /proc/ pid
101 directories belonging to other users become invisible.
102 This means that
103 .IR /proc/ pid
104 entries can no longer be used to discover the PIDs on the system.
105 This doesn't hide the fact that a process with a specific PID value exists
106 (it can be learned by other means, for example, by "kill \-0 $PID"),
107 but it hides a process's UID and GID,
108 which could otherwise be learned by employing
109 .BR stat (2)
110 on a
111 .IR /proc/ pid
112 directory.
113 This greatly complicates an attacker's task of gathering
114 information about running processes (e.g., discovering whether
115 some daemon is running with elevated privileges,
116 whether another user is running some sensitive program,
117 whether other users are running any program at all, and so on).
118 .RE
119 .TP
120 .BR gid "=\fIgid\fP (since Linux 3.3)"
121 .\" commit 0499680a42141d86417a8fbaa8c8db806bea1201
122 Specifies the ID of a group whose members are authorized to
123 learn process information otherwise prohibited by
124 .B hidepid
125 (i.e., users in this group behave as though
126 .I /proc
127 was mounted with
128 .IR hidepid=0 ).
129 This group should be used instead of approaches such as putting
130 nonroot users into the
131 .BR sudoers (5)
132 file.
133 .\"
134 .SS Overview
135 Underneath
136 .IR /proc ,
137 there are the following general groups of files and subdirectories:
138 .TP
139 .IR /proc/ "pid subdirectories"
140 Each one of these subdirectories contains files and subdirectories
141 exposing information about the process with the corresponding process ID.
142 .IP
143 Underneath each of the
144 .IR /proc/ pid
145 directories, a
146 .I task
147 subdirectory contains subdirectories of the form
148 .IR task/ tid,
149 which contain corresponding information about each of the threads
150 in the process, where
151 .I tid
152 is the kernel thread ID of the thread.
153 .IP
154 The
155 .IR /proc/ pid
156 subdirectories are visible when iterating through
157 .I /proc
158 with
159 .BR getdents (2)
160 (and thus are visible when one uses
161 .BR ls (1)
162 to view the contents of
163 .IR /proc ).
164 .TP
165 .IR /proc/ "tid subdirectories"
166 Each one of these subdirectories contains files and subdirectories
167 exposing information about the thread with the corresponding thread ID.
168 The contents of these directories are the same as the corresponding
169 .IR /proc/ pid /task/ tid
170 directories.
171 .IP
172 The
173 .IR /proc/ tid
174 subdirectories are
175 .I not
176 visible when iterating through
177 .I /proc
178 with
179 .BR getdents (2)
180 (and thus are
181 .I not
182 visible when one uses
183 .BR ls (1)
184 to view the contents of
185 .IR /proc ).
186 .TP
187 .I /proc/self
188 When a process accesses this magic symbolic link,
189 it resolves to the process's own
190 .IR /proc/ pid
191 directory.
192 .TP
193 .I /proc/thread\-self
194 When a thread accesses this magic symbolic link,
195 it resolves to the process's own
196 .IR /proc/self/task/ tid
197 directory.
198 .TP
199 .I /proc/[a\-z]*
200 Various other files and subdirectories under
201 .I /proc
202 expose system-wide information.
203 .PP
204 All of the above are described in more detail below.
205 .\"
206 .SS Files and directories
207 The following list provides details of many of the files and directories
208 under the
209 .I /proc
210 hierarchy.
211 .\" FIXME Describe /proc/[pid]/sessionid
212 .\" commit 1e0bd7550ea9cf474b1ad4c6ff5729a507f75fdc
213 .\" CONFIG_AUDITSYSCALL
214 .\" Added in Linux 2.6.25; read-only; only readable by real UID
215 .\"
216 .\" FIXME Describe /proc/[pid]/sched
217 .\" Added in Linux 2.6.23
218 .\" CONFIG_SCHED_DEBUG, and additional fields if CONFIG_SCHEDSTATS
219 .\" Displays various scheduling parameters
220 .\" This file can be written, to reset stats
221 .\" The set of fields exposed by this file have changed
222 .\" significantly over time.
223 .\" commit 43ae34cb4cd650d1eb4460a8253a8e747ba052ac
224 .\"
225 .\" FIXME Describe /proc/[pid]/schedstats and
226 .\" /proc/[pid]/task/[tid]/schedstats
227 .\" Added in Linux 2.6.9
228 .\" CONFIG_SCHEDSTATS
229 .TP
230 .IR /proc/kallsyms " (since Linux 2.5.71)"
231 This holds the kernel exported symbol definitions used by the
232 .BR modules (X)
233 tools to dynamically link and bind loadable modules.
234 In Linux 2.5.47 and earlier, a similar file with slightly different syntax
235 was named
236 .IR ksyms .
237 .TP
238 .I /proc/kcore
239 This file represents the physical memory of the system and is stored
240 in the ELF core file format.
241 With this pseudo-file, and an unstripped
242 kernel
243 .RI ( /usr/src/linux/vmlinux )
244 binary, GDB can be used to
245 examine the current state of any kernel data structures.
246 .IP
247 The total length of the file is the size of physical memory (RAM) plus
248 4\ KiB.
249 .TP
250 .IR /proc/keys " (since Linux 2.6.10)"
251 See
252 .BR keyrings (7).
253 .TP
254 .IR /proc/key\-users " (since Linux 2.6.10)"
255 See
256 .BR keyrings (7).
257 .TP
258 .I /proc/kmsg
259 This file can be used instead of the
260 .BR syslog (2)
261 system call to read kernel messages.
262 A process must have superuser
263 privileges to read this file, and only one process should read this
264 file.
265 This file should not be read if a syslog process is running
266 which uses the
267 .BR syslog (2)
268 system call facility to log kernel messages.
269 .IP
270 Information in this file is retrieved with the
271 .BR dmesg (1)
272 program.
273 .TP
274 .IR /proc/kpagecgroup " (since Linux 4.3)"
275 .\" commit 80ae2fdceba8313b0433f899bdd9c6c463291a17
276 This file contains a 64-bit inode number of
277 the memory cgroup each page is charged to,
278 indexed by page frame number (see the discussion of
279 .IR /proc/ pid /pagemap ).
280 .IP
281 The
282 .I /proc/kpagecgroup
283 file is present only if the
284 .B CONFIG_MEMCG
285 kernel configuration option is enabled.
286 .TP
287 .IR /proc/kpagecount " (since Linux 2.6.25)"
288 This file contains a 64-bit count of the number of
289 times each physical page frame is mapped,
290 indexed by page frame number (see the discussion of
291 .IR /proc/ pid /pagemap ).
292 .IP
293 The
294 .I /proc/kpagecount
295 file is present only if the
296 .B CONFIG_PROC_PAGE_MONITOR
297 kernel configuration option is enabled.
298 .TP
299 .IR /proc/kpageflags " (since Linux 2.6.25)"
300 This file contains 64-bit masks corresponding to each physical page frame;
301 it is indexed by page frame number (see the discussion of
302 .IR /proc/ pid /pagemap ).
303 The bits are as follows:
304 .RS
305 .IP
306 .TS
307 r l l l.
308 0 - KPF_LOCKED
309 1 - KPF_ERROR
310 2 - KPF_REFERENCED
311 3 - KPF_UPTODATE
312 4 - KPF_DIRTY
313 5 - KPF_LRU
314 6 - KPF_ACTIVE
315 7 - KPF_SLAB
316 8 - KPF_WRITEBACK
317 9 - KPF_RECLAIM
318 10 - KPF_BUDDY
319 11 - KPF_MMAP (since Linux 2.6.31)
320 12 - KPF_ANON (since Linux 2.6.31)
321 13 - KPF_SWAPCACHE (since Linux 2.6.31)
322 14 - KPF_SWAPBACKED (since Linux 2.6.31)
323 15 - KPF_COMPOUND_HEAD (since Linux 2.6.31)
324 16 - KPF_COMPOUND_TAIL (since Linux 2.6.31)
325 17 - KPF_HUGE (since Linux 2.6.31)
326 18 - KPF_UNEVICTABLE (since Linux 2.6.31)
327 19 - KPF_HWPOISON (since Linux 2.6.31)
328 20 - KPF_NOPAGE (since Linux 2.6.31)
329 21 - KPF_KSM (since Linux 2.6.32)
330 22 - KPF_THP (since Linux 3.4)
331 23 - KPF_BALLOON (since Linux 3.18)
332 .\" KPF_BALLOON: commit 09316c09dde33aae14f34489d9e3d243ec0d5938
333 24 - KPF_ZERO_PAGE (since Linux 4.0)
334 .\" KPF_ZERO_PAGE: commit 56873f43abdcd574b25105867a990f067747b2f4
335 25 - KPF_IDLE (since Linux 4.3)
336 .\" KPF_IDLE: commit f074a8f49eb87cde95ac9d040ad5e7ea4f029738
337 26 - KPF_PGTABLE (since Linux 4.18)
338 .\" KPF_PGTABLE: commit 1d40a5ea01d53251c23c7be541d3f4a656cfc537
339 .TE
340 .RE
341 .IP
342 For further details on the meanings of these bits,
343 see the kernel source file
344 .IR Documentation/admin\-guide/mm/pagemap.rst .
345 Before Linux 2.6.29,
346 .\" commit ad3bdefe877afb47480418fdb05ecd42842de65e
347 .\" commit e07a4b9217d1e97d2f3a62b6b070efdc61212110
348 .BR KPF_WRITEBACK ,
349 .BR KPF_RECLAIM ,
350 .BR KPF_BUDDY ,
351 and
352 .B KPF_LOCKED
353 did not report correctly.
354 .IP
355 The
356 .I /proc/kpageflags
357 file is present only if the
358 .B CONFIG_PROC_PAGE_MONITOR
359 kernel configuration option is enabled.
360 .TP
361 .IR /proc/ksyms " (Linux 1.1.23\[en]2.5.47)"
362 See
363 .IR /proc/kallsyms .
364 .TP
365 .I /proc/loadavg
366 The first three fields in this file are load average figures
367 giving the number of jobs in the run queue (state R)
368 or waiting for disk I/O (state D) averaged over 1, 5, and 15 minutes.
369 They are the same as the load average numbers given by
370 .BR uptime (1)
371 and other programs.
372 The fourth field consists of two numbers separated by a slash (/).
373 The first of these is the number of currently runnable kernel
374 scheduling entities (processes, threads).
375 The value after the slash is the number of kernel scheduling entities
376 that currently exist on the system.
377 The fifth field is the PID of the process that was most
378 recently created on the system.
379 .TP
380 .I /proc/locks
381 This file shows current file locks
382 .RB ( flock "(2) and " fcntl (2))
383 and leases
384 .RB ( fcntl (2)).
385 .IP
386 An example of the content shown in this file is the following:
387 .IP
388 .in +4n
389 .EX
390 1: POSIX ADVISORY READ 5433 08:01:7864448 128 128
391 2: FLOCK ADVISORY WRITE 2001 08:01:7864554 0 EOF
392 3: FLOCK ADVISORY WRITE 1568 00:2f:32388 0 EOF
393 4: POSIX ADVISORY WRITE 699 00:16:28457 0 EOF
394 5: POSIX ADVISORY WRITE 764 00:16:21448 0 0
395 6: POSIX ADVISORY READ 3548 08:01:7867240 1 1
396 7: POSIX ADVISORY READ 3548 08:01:7865567 1826 2335
397 8: OFDLCK ADVISORY WRITE \-1 08:01:8713209 128 191
398 .EE
399 .in
400 .IP
401 The fields shown in each line are as follows:
402 .RS
403 .IP [1] 5
404 The ordinal position of the lock in the list.
405 .IP [2]
406 The lock type.
407 Values that may appear here include:
408 .RS
409 .TP
410 .B FLOCK
411 This is a BSD file lock created using
412 .BR flock (2).
413 .TP
414 .B OFDLCK
415 This is an open file description (OFD) lock created using
416 .BR fcntl (2).
417 .TP
418 .B POSIX
419 This is a POSIX byte-range lock created using
420 .BR fcntl (2).
421 .RE
422 .IP [3]
423 Among the strings that can appear here are the following:
424 .RS
425 .TP
426 .B ADVISORY
427 This is an advisory lock.
428 .TP
429 .B MANDATORY
430 This is a mandatory lock.
431 .RE
432 .IP [4]
433 The type of lock.
434 Values that can appear here are:
435 .RS
436 .TP
437 .B READ
438 This is a POSIX or OFD read lock, or a BSD shared lock.
439 .TP
440 .B WRITE
441 This is a POSIX or OFD write lock, or a BSD exclusive lock.
442 .RE
443 .IP [5]
444 The PID of the process that owns the lock.
445 .IP
446 Because OFD locks are not owned by a single process
447 (since multiple processes may have file descriptors that
448 refer to the same open file description),
449 the value \-1 is displayed in this field for OFD locks.
450 (Before Linux 4.14,
451 .\" commit 9d5b86ac13c573795525ecac6ed2db39ab23e2a8
452 a bug meant that the PID of the process that
453 initially acquired the lock was displayed instead of the value \-1.)
454 .IP [6]
455 Three colon-separated subfields that identify the major and minor device
456 ID of the device containing the filesystem where the locked file resides,
457 followed by the inode number of the locked file.
458 .IP [7]
459 The byte offset of the first byte of the lock.
460 For BSD locks, this value is always 0.
461 .IP [8]
462 The byte offset of the last byte of the lock.
463 .B EOF
464 in this field means that the lock extends to the end of the file.
465 For BSD locks, the value shown is always
466 .IR EOF .
467 .RE
468 .IP
469 Since Linux 4.9,
470 .\" commit d67fd44f697dff293d7cdc29af929241b669affe
471 the list of locks shown in
472 .I /proc/locks
473 is filtered to show just the locks for the processes in the PID
474 namespace (see
475 .BR pid_namespaces (7))
476 for which the
477 .I /proc
478 filesystem was mounted.
479 (In the initial PID namespace,
480 there is no filtering of the records shown in this file.)
481 .IP
482 The
483 .BR lslocks (8)
484 command provides a bit more information about each lock.
485 .TP
486 .IR /proc/malloc " (only up to and including Linux 2.2)"
487 .\" It looks like this only ever did something back in 1.0 days
488 This file is present only if
489 .B CONFIG_DEBUG_MALLOC
490 was defined during compilation.
491 .TP
492 .I /proc/meminfo
493 This file reports statistics about memory usage on the system.
494 It is used by
495 .BR free (1)
496 to report the amount of free and used memory (both physical and swap)
497 on the system as well as the shared memory and buffers used by the
498 kernel.
499 Each line of the file consists of a parameter name, followed by a colon,
500 the value of the parameter, and an option unit of measurement (e.g., "kB").
501 The list below describes the parameter names and
502 the format specifier required to read the field value.
503 Except as noted below,
504 all of the fields have been present since at least Linux 2.6.0.
505 Some fields are displayed only if the kernel was configured
506 with various options; those dependencies are noted in the list.
507 .RS
508 .TP
509 .IR MemTotal " %lu"
510 Total usable RAM (i.e., physical RAM minus a few reserved
511 bits and the kernel binary code).
512 .TP
513 .IR MemFree " %lu"
514 The sum of
515 .IR LowFree + HighFree .
516 .TP
517 .IR MemAvailable " %lu (since Linux 3.14)"
518 An estimate of how much memory is available for starting new
519 applications, without swapping.
520 .TP
521 .IR Buffers " %lu"
522 Relatively temporary storage for raw disk blocks that
523 shouldn't get tremendously large (20 MB or so).
524 .TP
525 .IR Cached " %lu"
526 In-memory cache for files read from the disk (the page cache).
527 Doesn't include
528 .IR SwapCached .
529 .TP
530 .IR SwapCached " %lu"
531 Memory that once was swapped out, is swapped back in but
532 still also is in the swap file.
533 (If memory pressure is high, these pages
534 don't need to be swapped out again because they are already
535 in the swap file.
536 This saves I/O.)
537 .TP
538 .IR Active " %lu"
539 Memory that has been used more recently and usually not
540 reclaimed unless absolutely necessary.
541 .TP
542 .IR Inactive " %lu"
543 Memory which has been less recently used.
544 It is more eligible to be reclaimed for other purposes.
545 .TP
546 .IR Active(anon) " %lu (since Linux 2.6.28)"
547 [To be documented.]
548 .TP
549 .IR Inactive(anon) " %lu (since Linux 2.6.28)"
550 [To be documented.]
551 .TP
552 .IR Active(file) " %lu (since Linux 2.6.28)"
553 [To be documented.]
554 .TP
555 .IR Inactive(file) " %lu (since Linux 2.6.28)"
556 [To be documented.]
557 .TP
558 .IR Unevictable " %lu (since Linux 2.6.28)"
559 (From Linux 2.6.28 to Linux 2.6.30,
560 \fBCONFIG_UNEVICTABLE_LRU\fP was required.)
561 [To be documented.]
562 .TP
563 .IR Mlocked " %lu (since Linux 2.6.28)"
564 (From Linux 2.6.28 to Linux 2.6.30,
565 \fBCONFIG_UNEVICTABLE_LRU\fP was required.)
566 [To be documented.]
567 .TP
568 .IR HighTotal " %lu"
569 (Starting with Linux 2.6.19, \fBCONFIG_HIGHMEM\fP is required.)
570 Total amount of highmem.
571 Highmem is all memory above \[ti]860 MB of physical memory.
572 Highmem areas are for use by user-space programs,
573 or for the page cache.
574 The kernel must use tricks to access
575 this memory, making it slower to access than lowmem.
576 .TP
577 .IR HighFree " %lu"
578 (Starting with Linux 2.6.19, \fBCONFIG_HIGHMEM\fP is required.)
579 Amount of free highmem.
580 .TP
581 .IR LowTotal " %lu"
582 (Starting with Linux 2.6.19, \fBCONFIG_HIGHMEM\fP is required.)
583 Total amount of lowmem.
584 Lowmem is memory which can be used for everything that
585 highmem can be used for, but it is also available for the
586 kernel's use for its own data structures.
587 Among many other things,
588 it is where everything from
589 .I Slab
590 is allocated.
591 Bad things happen when you're out of lowmem.
592 .TP
593 .IR LowFree " %lu"
594 (Starting with Linux 2.6.19, \fBCONFIG_HIGHMEM\fP is required.)
595 Amount of free lowmem.
596 .TP
597 .IR MmapCopy " %lu (since Linux 2.6.29)"
598 .RB ( CONFIG_MMU
599 is required.)
600 [To be documented.]
601 .TP
602 .IR SwapTotal " %lu"
603 Total amount of swap space available.
604 .TP
605 .IR SwapFree " %lu"
606 Amount of swap space that is currently unused.
607 .TP
608 .IR Dirty " %lu"
609 Memory which is waiting to get written back to the disk.
610 .TP
611 .IR Writeback " %lu"
612 Memory which is actively being written back to the disk.
613 .TP
614 .IR AnonPages " %lu (since Linux 2.6.18)"
615 Non-file backed pages mapped into user-space page tables.
616 .TP
617 .IR Mapped " %lu"
618 Files which have been mapped into memory (with
619 .BR mmap (2)),
620 such as libraries.
621 .TP
622 .IR Shmem " %lu (since Linux 2.6.32)"
623 Amount of memory consumed in
624 .BR tmpfs (5)
625 filesystems.
626 .TP
627 .IR KReclaimable " %lu (since Linux 4.20)"
628 Kernel allocations that the kernel will attempt to reclaim
629 under memory pressure.
630 Includes
631 .I SReclaimable
632 (below), and other direct allocations with a shrinker.
633 .TP
634 .IR Slab " %lu"
635 In-kernel data structures cache.
636 (See
637 .BR slabinfo (5).)
638 .TP
639 .IR SReclaimable " %lu (since Linux 2.6.19)"
640 Part of
641 .IR Slab ,
642 that might be reclaimed, such as caches.
643 .TP
644 .IR SUnreclaim " %lu (since Linux 2.6.19)"
645 Part of
646 .IR Slab ,
647 that cannot be reclaimed on memory pressure.
648 .TP
649 .IR KernelStack " %lu (since Linux 2.6.32)"
650 Amount of memory allocated to kernel stacks.
651 .TP
652 .IR PageTables " %lu (since Linux 2.6.18)"
653 Amount of memory dedicated to the lowest level of page tables.
654 .TP
655 .IR Quicklists " %lu (since Linux 2.6.27)"
656 (\fBCONFIG_QUICKLIST\fP is required.)
657 [To be documented.]
658 .TP
659 .IR NFS_Unstable " %lu (since Linux 2.6.18)"
660 NFS pages sent to the server, but not yet committed to stable storage.
661 .TP
662 .IR Bounce " %lu (since Linux 2.6.18)"
663 Memory used for block device "bounce buffers".
664 .TP
665 .IR WritebackTmp " %lu (since Linux 2.6.26)"
666 Memory used by FUSE for temporary writeback buffers.
667 .TP
668 .IR CommitLimit " %lu (since Linux 2.6.10)"
669 This is the total amount of memory currently available to
670 be allocated on the system, expressed in kilobytes.
671 This limit is adhered to
672 only if strict overcommit accounting is enabled (mode 2 in
673 .IR /proc/sys/vm/overcommit_memory ).
674 The limit is calculated according to the formula described under
675 .IR /proc/sys/vm/overcommit_memory .
676 For further details, see the kernel source file
677 .IR Documentation/vm/overcommit\-accounting.rst .
678 .TP
679 .IR Committed_AS " %lu"
680 The amount of memory presently allocated on the system.
681 The committed memory is a sum of all of the memory which
682 has been allocated by processes, even if it has not been
683 "used" by them as of yet.
684 A process which allocates 1 GB of memory (using
685 .BR malloc (3)
686 or similar), but touches only 300 MB of that memory will show up
687 as using only 300 MB of memory even if it has the address space
688 allocated for the entire 1 GB.
689 .IP
690 This 1 GB is memory which has been "committed" to by the VM
691 and can be used at any time by the allocating application.
692 With strict overcommit enabled on the system (mode 2 in
693 .IR /proc/sys/vm/overcommit_memory ),
694 allocations which would exceed the
695 .I CommitLimit
696 will not be permitted.
697 This is useful if one needs to guarantee that processes will not
698 fail due to lack of memory once that memory has been successfully allocated.
699 .TP
700 .IR VmallocTotal " %lu"
701 Total size of vmalloc memory area.
702 .TP
703 .IR VmallocUsed " %lu"
704 Amount of vmalloc area which is used.
705 Since Linux 4.4,
706 .\" commit a5ad88ce8c7fae7ddc72ee49a11a75aa837788e0
707 this field is no longer calculated, and is hard coded as 0.
708 See
709 .IR /proc/vmallocinfo .
710 .TP
711 .IR VmallocChunk " %lu"
712 Largest contiguous block of vmalloc area which is free.
713 Since Linux 4.4,
714 .\" commit a5ad88ce8c7fae7ddc72ee49a11a75aa837788e0
715 this field is no longer calculated and is hard coded as 0.
716 See
717 .IR /proc/vmallocinfo .
718 .TP
719 .IR HardwareCorrupted " %lu (since Linux 2.6.32)"
720 (\fBCONFIG_MEMORY_FAILURE\fP is required.)
721 [To be documented.]
722 .TP
723 .IR LazyFree " %lu (since Linux 4.12)"
724 Shows the amount of memory marked by
725 .BR madvise (2)
726 .BR MADV_FREE .
727 .TP
728 .IR AnonHugePages " %lu (since Linux 2.6.38)"
729 (\fBCONFIG_TRANSPARENT_HUGEPAGE\fP is required.)
730 Non-file backed huge pages mapped into user-space page tables.
731 .TP
732 .IR ShmemHugePages " %lu (since Linux 4.8)"
733 (\fBCONFIG_TRANSPARENT_HUGEPAGE\fP is required.)
734 Memory used by shared memory (shmem) and
735 .BR tmpfs (5)
736 allocated with huge pages.
737 .TP
738 .IR ShmemPmdMapped " %lu (since Linux 4.8)"
739 (\fBCONFIG_TRANSPARENT_HUGEPAGE\fP is required.)
740 Shared memory mapped into user space with huge pages.
741 .TP
742 .IR CmaTotal " %lu (since Linux 3.1)"
743 Total CMA (Contiguous Memory Allocator) pages.
744 (\fBCONFIG_CMA\fP is required.)
745 .TP
746 .IR CmaFree " %lu (since Linux 3.1)"
747 Free CMA (Contiguous Memory Allocator) pages.
748 (\fBCONFIG_CMA\fP is required.)
749 .TP
750 .IR HugePages_Total " %lu"
751 (\fBCONFIG_HUGETLB_PAGE\fP is required.)
752 The size of the pool of huge pages.
753 .TP
754 .IR HugePages_Free " %lu"
755 (\fBCONFIG_HUGETLB_PAGE\fP is required.)
756 The number of huge pages in the pool that are not yet allocated.
757 .TP
758 .IR HugePages_Rsvd " %lu (since Linux 2.6.17)"
759 (\fBCONFIG_HUGETLB_PAGE\fP is required.)
760 This is the number of huge pages for
761 which a commitment to allocate from the pool has been made,
762 but no allocation has yet been made.
763 These reserved huge pages
764 guarantee that an application will be able to allocate a
765 huge page from the pool of huge pages at fault time.
766 .TP
767 .IR HugePages_Surp " %lu (since Linux 2.6.24)"
768 (\fBCONFIG_HUGETLB_PAGE\fP is required.)
769 This is the number of huge pages in
770 the pool above the value in
771 .IR /proc/sys/vm/nr_hugepages .
772 The maximum number of surplus huge pages is controlled by
773 .IR /proc/sys/vm/nr_overcommit_hugepages .
774 .TP
775 .IR Hugepagesize " %lu"
776 (\fBCONFIG_HUGETLB_PAGE\fP is required.)
777 The size of huge pages.
778 .TP
779 .IR DirectMap4k " %lu (since Linux 2.6.27)"
780 Number of bytes of RAM linearly mapped by kernel in 4 kB pages.
781 (x86.)
782 .TP
783 .IR DirectMap4M " %lu (since Linux 2.6.27)"
784 Number of bytes of RAM linearly mapped by kernel in 4 MB pages.
785 (x86 with
786 .B CONFIG_X86_64
787 or
788 .B CONFIG_X86_PAE
789 enabled.)
790 .TP
791 .IR DirectMap2M " %lu (since Linux 2.6.27)"
792 Number of bytes of RAM linearly mapped by kernel in 2 MB pages.
793 (x86 with neither
794 .B CONFIG_X86_64
795 nor
796 .B CONFIG_X86_PAE
797 enabled.)
798 .TP
799 .IR DirectMap1G " %lu (since Linux 2.6.27)"
800 (x86 with
801 .B CONFIG_X86_64
802 and
803 .B CONFIG_X86_DIRECT_GBPAGES
804 enabled.)
805 .RE
806 .TP
807 .I /proc/modules
808 A text list of the modules that have been loaded by the system.
809 See also
810 .BR lsmod (8).
811 .TP
812 .I /proc/mtrr
813 Memory Type Range Registers.
814 See the Linux kernel source file
815 .I Documentation/x86/mtrr.rst
816 (or
817 .I Documentation/x86/mtrr.txt
818 .\" commit 7225e75144b9718cbbe1820d9c011c809d5773fd
819 before Linux 5.2, or
820 .I Documentation/mtrr.txt
821 before Linux 2.6.28)
822 for details.
823 .TP
824 .I /proc/partitions
825 Contains the major and minor numbers of each partition as well as the number
826 of 1024-byte blocks and the partition name.
827 .TP
828 .I /proc/pci
829 This is a listing of all PCI devices found during kernel initialization
830 and their configuration.
831 .IP
832 This file has been deprecated in favor of a new
833 .I /proc
834 interface for PCI
835 .RI ( /proc/bus/pci ).
836 It became optional in Linux 2.2 (available with
837 .B CONFIG_PCI_OLD_PROC
838 set at kernel compilation).
839 It became once more nonoptionally enabled in Linux 2.4.
840 Next, it was deprecated in Linux 2.6 (still available with
841 .B CONFIG_PCI_LEGACY_PROC
842 set), and finally removed altogether since Linux 2.6.17.
843 .\" FIXME Document /proc/sched_debug (since Linux 2.6.23)
844 .\" See also /proc/[pid]/sched
845 .TP
846 .IR /proc/profile " (since Linux 2.4)"
847 This file is present only if the kernel was booted with the
848 .I profile=1
849 command-line option.
850 It exposes kernel profiling information in a binary format for use by
851 .BR readprofile (1).
852 Writing (e.g., an empty string) to this file resets the profiling counters;
853 on some architectures,
854 writing a binary integer "profiling multiplier" of size
855 .I sizeof(int)
856 sets the profiling interrupt frequency.
857 .TP
858 .I /proc/scsi
859 A directory with the
860 .I scsi
861 mid-level pseudo-file and various SCSI low-level
862 driver directories,
863 which contain a file for each SCSI host in this system, all of
864 which give the status of some part of the SCSI IO subsystem.
865 These files contain ASCII structures and are, therefore, readable with
866 .BR cat (1).
867 .IP
868 You can also write to some of the files to reconfigure the subsystem or
869 switch certain features on or off.
870 .TP
871 .I /proc/scsi/scsi
872 This is a listing of all SCSI devices known to the kernel.
873 The listing is similar to the one seen during bootup.
874 scsi currently supports only the \fIadd\-single\-device\fP command which
875 allows root to add a hotplugged device to the list of known devices.
876 .IP
877 The command
878 .IP
879 .in +4n
880 .EX
881 echo \[aq]scsi add\-single\-device 1 0 5 0\[aq] > /proc/scsi/scsi
882 .EE
883 .in
884 .IP
885 will cause
886 host scsi1 to scan on SCSI channel 0 for a device on ID 5 LUN 0.
887 If there
888 is already a device known on this address or the address is invalid, an
889 error will be returned.
890 .TP
891 .IR /proc/scsi/ drivername
892 \fIdrivername\fP can currently be NCR53c7xx, aha152x, aha1542, aha1740,
893 aic7xxx, buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic,
894 scsi_debug, seagate, t128, u15\-24f, ultrastore, or wd7000.
895 These directories show up for all drivers that registered at least one
896 SCSI HBA.
897 Every directory contains one file per registered host.
898 Every host-file is named after the number the host was assigned during
899 initialization.
900 .IP
901 Reading these files will usually show driver and host configuration,
902 statistics, and so on.
903 .IP
904 Writing to these files allows different things on different hosts.
905 For example, with the \fIlatency\fP and \fInolatency\fP commands,
906 root can switch on and off command latency measurement code in the
907 eata_dma driver.
908 With the \fIlockup\fP and \fIunlock\fP commands,
909 root can control bus lockups simulated by the scsi_debug driver.
910 .TP
911 .I /proc/slabinfo
912 Information about kernel caches.
913 See
914 .BR slabinfo (5)
915 for details.
916 .TP
917 .I /proc/stat
918 kernel/system statistics.
919 Varies with architecture.
920 Common
921 entries include:
922 .RS
923 .TP
924 .I cpu 10132153 290696 3084719 46828483 16683 0 25195 0 175628 0
925 .TQ
926 .I cpu0 1393280 32966 572056 13343292 6130 0 17875 0 23933 0
927 The amount of time, measured in units of
928 USER_HZ (1/100ths of a second on most architectures, use
929 .I sysconf(_SC_CLK_TCK)
930 to obtain the right value),
931 .\" 1024 on Alpha and ia64
932 that the system ("cpu" line) or the specific CPU ("cpu\fIN\fR" line)
933 spent in various states:
934 .RS
935 .TP
936 .I user
937 (1) Time spent in user mode.
938 .TP
939 .I nice
940 (2) Time spent in user mode with low priority (nice).
941 .TP
942 .I system
943 (3) Time spent in system mode.
944 .TP
945 .I idle
946 (4) Time spent in the idle task.
947 .\" FIXME . Actually, the following info about the /proc/stat 'cpu' field
948 .\" does not seem to be quite right (at least in Linux 2.6.12 or Linux 3.6):
949 .\" the idle time in /proc/uptime does not quite match this value
950 This value should be USER_HZ times the
951 second entry in the
952 .I /proc/uptime
953 pseudo-file.
954 .TP
955 .IR iowait " (since Linux 2.5.41)"
956 (5) Time waiting for I/O to complete.
957 This value is not reliable, for the following reasons:
958 .\" See kernel commit 9c240d757658a3ae9968dd309e674c61f07c7f48
959 .RS
960 .IP \[bu] 3
961 The CPU will not wait for I/O to complete;
962 iowait is the time that a task is waiting for I/O to complete.
963 When a CPU goes into idle state for outstanding task I/O,
964 another task will be scheduled on this CPU.
965 .IP \[bu]
966 On a multi-core CPU,
967 the task waiting for I/O to complete is not running on any CPU,
968 so the iowait of each CPU is difficult to calculate.
969 .IP \[bu]
970 The value in this field may
971 .I decrease
972 in certain conditions.
973 .RE
974 .TP
975 .IR irq " (since Linux 2.6.0)"
976 .\" Precisely: Linux 2.6.0-test4
977 (6) Time servicing interrupts.
978 .TP
979 .IR softirq " (since Linux 2.6.0)"
980 .\" Precisely: Linux 2.6.0-test4
981 (7) Time servicing softirqs.
982 .TP
983 .IR steal " (since Linux 2.6.11)"
984 (8) Stolen time, which is the time spent in other operating systems when
985 running in a virtualized environment
986 .TP
987 .IR guest " (since Linux 2.6.24)"
988 (9) Time spent running a virtual CPU for guest
989 operating systems under the control of the Linux kernel.
990 .\" See Changelog entry for 5e84cfde51cf303d368fcb48f22059f37b3872de
991 .TP
992 .IR guest_nice " (since Linux 2.6.33)"
993 .\" commit ce0e7b28fb75cb003cfc8d0238613aaf1c55e797
994 (10) Time spent running a niced guest (virtual CPU for guest
995 operating systems under the control of the Linux kernel).
996 .RE
997 .TP
998 \fIpage 5741 1808\fP
999 The number of pages the system paged in and the number that were paged
1000 out (from disk).
1001 .TP
1002 \fIswap 1 0\fP
1003 The number of swap pages that have been brought in and out.
1004 .TP
1005 .\" FIXME . The following is not the full picture for the 'intr' of
1006 .\" /proc/stat on 2.6:
1007 \fIintr 1462898\fP
1008 This line shows counts of interrupts serviced since boot time,
1009 for each of the possible system interrupts.
1010 The first column is the total of all interrupts serviced
1011 including unnumbered architecture specific interrupts;
1012 each subsequent column is the total for that particular numbered interrupt.
1013 Unnumbered interrupts are not shown, only summed into the total.
1014 .TP
1015 \fIdisk_io: (2,0):(31,30,5764,1,2) (3,0):\fP...
1016 (major,disk_idx):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written)
1017 .br
1018 (Linux 2.4 only)
1019 .TP
1020 \fIctxt 115315\fP
1021 The number of context switches that the system underwent.
1022 .TP
1023 \fIbtime 769041601\fP
1024 boot time, in seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).
1025 .TP
1026 \fIprocesses 86031\fP
1027 Number of forks since boot.
1028 .TP
1029 \fIprocs_running 6\fP
1030 Number of processes in runnable state.
1031 (Linux 2.5.45 onward.)
1032 .TP
1033 \fIprocs_blocked 2\fP
1034 Number of processes blocked waiting for I/O to complete.
1035 (Linux 2.5.45 onward.)
1036 .TP
1037 .I softirq 229245889 94 60001584 13619 5175704 2471304 28 51212741 59130143 0 51240672
1038 .\" commit d3d64df21d3d0de675a0d3ffa7c10514f3644b30
1039 This line shows the number of softirq for all CPUs.
1040 The first column is the total of all softirqs and
1041 each subsequent column is the total for particular softirq.
1042 (Linux 2.6.31 onward.)
1043 .RE
1044 .TP
1045 .I /proc/swaps
1046 Swap areas in use.
1047 See also
1048 .BR swapon (8).
1049 .TP
1050 .I /proc/sys
1051 This directory (present since Linux 1.3.57) contains a number of files
1052 and subdirectories corresponding to kernel variables.
1053 These variables can be read and in some cases modified using
1054 the \fI/proc\fP filesystem, and the (deprecated)
1055 .BR sysctl (2)
1056 system call.
1057 .IP
1058 String values may be terminated by either \[aq]\e0\[aq] or \[aq]\en\[aq].
1059 .IP
1060 Integer and long values may be written either in decimal or in
1061 hexadecimal notation (e.g., 0x3FFF).
1062 When writing multiple integer or long values, these may be separated
1063 by any of the following whitespace characters:
1064 \[aq]\ \[aq], \[aq]\et\[aq], or \[aq]\en\[aq].
1065 Using other separators leads to the error
1066 .BR EINVAL .
1067 .TP
1068 .IR /proc/sys/abi " (since Linux 2.4.10)"
1069 This directory may contain files with application binary information.
1070 .\" On some systems, it is not present.
1071 See the Linux kernel source file
1072 .I Documentation/sysctl/abi.rst
1073 (or
1074 .I Documentation/sysctl/abi.txt
1075 before Linux 5.3)
1076 for more information.
1077 .TP
1078 .I /proc/sys/debug
1079 This directory may be empty.
1080 .TP
1081 .I /proc/sys/dev
1082 This directory contains device-specific information (e.g.,
1083 .IR dev/cdrom/info ).
1084 On
1085 some systems, it may be empty.
1086 .TP
1087 .I /proc/sys/fs
1088 This directory contains the files and subdirectories for kernel variables
1089 related to filesystems.
1090 .TP
1091 .IR /proc/sys/fs/aio\-max\-nr " and " /proc/sys/fs/aio\-nr " (since Linux 2.6.4)"
1092 .I aio\-nr
1093 is the running total of the number of events specified by
1094 .BR io_setup (2)
1095 calls for all currently active AIO contexts.
1096 If
1097 .I aio\-nr
1098 reaches
1099 .IR aio\-max\-nr ,
1100 then
1101 .BR io_setup (2)
1102 will fail with the error
1103 .BR EAGAIN .
1104 Raising
1105 .I aio\-max\-nr
1106 does not result in the preallocation or resizing
1107 of any kernel data structures.
1108 .TP
1109 .I /proc/sys/fs/binfmt_misc
1110 Documentation for files in this directory can be found
1111 in the Linux kernel source in the file
1112 .I Documentation/admin\-guide/binfmt\-misc.rst
1113 (or in
1114 .I Documentation/binfmt_misc.txt
1115 on older kernels).
1116 .TP
1117 .IR /proc/sys/fs/dentry\-state " (since Linux 2.2)"
1118 This file contains information about the status of the
1119 directory cache (dcache).
1120 The file contains six numbers,
1121 .IR nr_dentry ,
1122 .IR nr_unused ,
1123 .I age_limit
1124 (age in seconds),
1125 .I want_pages
1126 (pages requested by system) and two dummy values.
1127 .RS
1128 .IP \[bu] 3
1129 .I nr_dentry
1130 is the number of allocated dentries (dcache entries).
1131 This field is unused in Linux 2.2.
1132 .IP \[bu]
1133 .I nr_unused
1134 is the number of unused dentries.
1135 .IP \[bu]
1136 .I age_limit
1137 .\" looks like this is unused in Linux 2.2 to Linux 2.6
1138 is the age in seconds after which dcache entries
1139 can be reclaimed when memory is short.
1140 .IP \[bu]
1141 .I want_pages
1142 .\" looks like this is unused in Linux 2.2 to Linux 2.6
1143 is nonzero when the kernel has called shrink_dcache_pages() and the
1144 dcache isn't pruned yet.
1145 .RE
1146 .TP
1147 .I /proc/sys/fs/dir\-notify\-enable
1148 This file can be used to disable or enable the
1149 .I dnotify
1150 interface described in
1151 .BR fcntl (2)
1152 on a system-wide basis.
1153 A value of 0 in this file disables the interface,
1154 and a value of 1 enables it.
1155 .TP
1156 .I /proc/sys/fs/dquot\-max
1157 This file shows the maximum number of cached disk quota entries.
1158 On some (2.4) systems, it is not present.
1159 If the number of free cached disk quota entries is very low and
1160 you have some awesome number of simultaneous system users,
1161 you might want to raise the limit.
1162 .TP
1163 .I /proc/sys/fs/dquot\-nr
1164 This file shows the number of allocated disk quota
1165 entries and the number of free disk quota entries.
1166 .TP
1167 .IR /proc/sys/fs/epoll " (since Linux 2.6.28)"
1168 This directory contains the file
1169 .IR max_user_watches ,
1170 which can be used to limit the amount of kernel memory consumed by the
1171 .I epoll
1172 interface.
1173 For further details, see
1174 .BR epoll (7).
1175 .TP
1176 .I /proc/sys/fs/file\-max
1177 This file defines
1178 a system-wide limit on the number of open files for all processes.
1179 System calls that fail when encountering this limit fail with the error
1180 .BR ENFILE .
1181 (See also
1182 .BR setrlimit (2),
1183 which can be used by a process to set the per-process limit,
1184 .BR RLIMIT_NOFILE ,
1185 on the number of files it may open.)
1186 If you get lots
1187 of error messages in the kernel log about running out of file handles
1188 (open file descriptions)
1189 (look for "VFS: file\-max limit <number> reached"),
1190 try increasing this value:
1191 .IP
1192 .in +4n
1193 .EX
1194 echo 100000 > /proc/sys/fs/file\-max
1195 .EE
1196 .in
1197 .IP
1198 Privileged processes
1199 .RB ( CAP_SYS_ADMIN )
1200 can override the
1201 .I file\-max
1202 limit.
1203 .TP
1204 .I /proc/sys/fs/file\-nr
1205 This (read-only) file contains three numbers:
1206 the number of allocated file handles
1207 (i.e., the number of open file descriptions; see
1208 .BR open (2));
1209 the number of free file handles;
1210 and the maximum number of file handles (i.e., the same value as
1211 .IR /proc/sys/fs/file\-max ).
1212 If the number of allocated file handles is close to the
1213 maximum, you should consider increasing the maximum.
1214 Before Linux 2.6,
1215 the kernel allocated file handles dynamically,
1216 but it didn't free them again.
1217 Instead the free file handles were kept in a list for reallocation;
1218 the "free file handles" value indicates the size of that list.
1219 A large number of free file handles indicates that there was
1220 a past peak in the usage of open file handles.
1221 Since Linux 2.6, the kernel does deallocate freed file handles,
1222 and the "free file handles" value is always zero.
1223 .TP
1224 .IR /proc/sys/fs/inode\-max " (only present until Linux 2.2)"
1225 This file contains the maximum number of in-memory inodes.
1226 This value should be 3\[en]4 times larger
1227 than the value in
1228 .IR file\-max ,
1229 since \fIstdin\fP, \fIstdout\fP
1230 and network sockets also need an inode to handle them.
1231 When you regularly run out of inodes, you need to increase this value.
1232 .IP
1233 Starting with Linux 2.4,
1234 there is no longer a static limit on the number of inodes,
1235 and this file is removed.
1236 .TP
1237 .I /proc/sys/fs/inode\-nr
1238 This file contains the first two values from
1239 .IR inode\-state .
1240 .TP
1241 .I /proc/sys/fs/inode\-state
1242 This file
1243 contains seven numbers:
1244 .IR nr_inodes ,
1245 .IR nr_free_inodes ,
1246 .IR preshrink ,
1247 and four dummy values (always zero).
1248 .IP
1249 .I nr_inodes
1250 is the number of inodes the system has allocated.
1251 .\" This can be slightly more than
1252 .\" .I inode\-max
1253 .\" because Linux allocates them one page full at a time.
1254 .I nr_free_inodes
1255 represents the number of free inodes.
1256 .IP
1257 .I preshrink
1258 is nonzero when the
1259 .I nr_inodes
1260 >
1261 .I inode\-max
1262 and the system needs to prune the inode list instead of allocating more;
1263 since Linux 2.4, this field is a dummy value (always zero).
1264 .TP
1265 .IR /proc/sys/fs/inotify " (since Linux 2.6.13)"
1266 This directory contains files
1267 .IR max_queued_events ", " max_user_instances ", and " max_user_watches ,
1268 that can be used to limit the amount of kernel memory consumed by the
1269 .I inotify
1270 interface.
1271 For further details, see
1272 .BR inotify (7).
1273 .TP
1274 .I /proc/sys/fs/lease\-break\-time
1275 This file specifies the grace period that the kernel grants to a process
1276 holding a file lease
1277 .RB ( fcntl (2))
1278 after it has sent a signal to that process notifying it
1279 that another process is waiting to open the file.
1280 If the lease holder does not remove or downgrade the lease within
1281 this grace period, the kernel forcibly breaks the lease.
1282 .TP
1283 .I /proc/sys/fs/leases\-enable
1284 This file can be used to enable or disable file leases
1285 .RB ( fcntl (2))
1286 on a system-wide basis.
1287 If this file contains the value 0, leases are disabled.
1288 A nonzero value enables leases.
1289 .TP
1290 .IR /proc/sys/fs/mount\-max " (since Linux 4.9)"
1291 .\" commit d29216842a85c7970c536108e093963f02714498
1292 The value in this file specifies the maximum number of mounts that may exist
1293 in a mount namespace.
1294 The default value in this file is 100,000.
1295 .TP
1296 .IR /proc/sys/fs/mqueue " (since Linux 2.6.6)"
1297 This directory contains files
1298 .IR msg_max ", " msgsize_max ", and " queues_max ,
1299 controlling the resources used by POSIX message queues.
1300 See
1301 .BR mq_overview (7)
1302 for details.
1303 .TP
1304 .IR /proc/sys/fs/nr_open " (since Linux 2.6.25)"
1305 .\" commit 9cfe015aa424b3c003baba3841a60dd9b5ad319b
1306 This file imposes a ceiling on the value to which the
1307 .B RLIMIT_NOFILE
1308 resource limit can be raised (see
1309 .BR getrlimit (2)).
1310 This ceiling is enforced for both unprivileged and privileged process.
1311 The default value in this file is 1048576.
1312 (Before Linux 2.6.25, the ceiling for
1313 .B RLIMIT_NOFILE
1314 was hard-coded to the same value.)
1315 .TP
1316 .IR /proc/sys/fs/overflowgid " and " /proc/sys/fs/overflowuid
1317 These files
1318 allow you to change the value of the fixed UID and GID.
1319 The default is 65534.
1320 Some filesystems support only 16-bit UIDs and GIDs, although in Linux
1321 UIDs and GIDs are 32 bits.
1322 When one of these filesystems is mounted
1323 with writes enabled, any UID or GID that would exceed 65535 is translated
1324 to the overflow value before being written to disk.
1325 .TP
1326 .IR /proc/sys/fs/pipe\-max\-size " (since Linux 2.6.35)"
1327 See
1328 .BR pipe (7).
1329 .TP
1330 .IR /proc/sys/fs/pipe\-user\-pages\-hard " (since Linux 4.5)"
1331 See
1332 .BR pipe (7).
1333 .TP
1334 .IR /proc/sys/fs/pipe\-user\-pages\-soft " (since Linux 4.5)"
1335 See
1336 .BR pipe (7).
1337 .TP
1338 .IR /proc/sys/fs/protected_fifos " (since Linux 4.19)"
1339 The value in this file is/can be set to one of the following:
1340 .RS
1341 .TP 4
1342 0
1343 Writing to FIFOs is unrestricted.
1344 .TP
1345 1
1346 Don't allow
1347 .B O_CREAT
1348 .BR open (2)
1349 on FIFOs that the caller doesn't own in world-writable sticky directories,
1350 unless the FIFO is owned by the owner of the directory.
1351 .TP
1352 2
1353 As for the value 1,
1354 but the restriction also applies to group-writable sticky directories.
1355 .RE
1356 .IP
1357 The intent of the above protections is to avoid unintentional writes to an
1358 attacker-controlled FIFO when a program expected to create a regular file.
1359 .TP
1360 .IR /proc/sys/fs/protected_hardlinks " (since Linux 3.6)"
1361 .\" commit 800179c9b8a1e796e441674776d11cd4c05d61d7
1362 When the value in this file is 0,
1363 no restrictions are placed on the creation of hard links
1364 (i.e., this is the historical behavior before Linux 3.6).
1365 When the value in this file is 1,
1366 a hard link can be created to a target file
1367 only if one of the following conditions is true:
1368 .RS
1369 .IP \[bu] 3
1370 The calling process has the
1371 .B CAP_FOWNER
1372 capability in its user namespace
1373 and the file UID has a mapping in the namespace.
1374 .IP \[bu]
1375 The filesystem UID of the process creating the link matches
1376 the owner (UID) of the target file
1377 (as described in
1378 .BR credentials (7),
1379 a process's filesystem UID is normally the same as its effective UID).
1380 .IP \[bu]
1381 All of the following conditions are true:
1382 .RS 4
1383 .IP \[bu] 3
1384 the target is a regular file;
1385 .IP \[bu]
1386 the target file does not have its set-user-ID mode bit enabled;
1387 .IP \[bu]
1388 the target file does not have both its set-group-ID and
1389 group-executable mode bits enabled; and
1390 .IP \[bu]
1391 the caller has permission to read and write the target file
1392 (either via the file's permissions mask or because it has
1393 suitable capabilities).
1394 .RE
1395 .RE
1396 .IP
1397 The default value in this file is 0.
1398 Setting the value to 1
1399 prevents a longstanding class of security issues caused by
1400 hard-link-based time-of-check, time-of-use races,
1401 most commonly seen in world-writable directories such as
1402 .IR /tmp .
1403 The common method of exploiting this flaw
1404 is to cross privilege boundaries when following a given hard link
1405 (i.e., a root process follows a hard link created by another user).
1406 Additionally, on systems without separated partitions,
1407 this stops unauthorized users from "pinning" vulnerable set-user-ID and
1408 set-group-ID files against being upgraded by
1409 the administrator, or linking to special files.
1410 .TP
1411 .IR /proc/sys/fs/protected_regular " (since Linux 4.19)"
1412 The value in this file is/can be set to one of the following:
1413 .RS
1414 .TP 4
1415 0
1416 Writing to regular files is unrestricted.
1417 .TP
1418 1
1419 Don't allow
1420 .B O_CREAT
1421 .BR open (2)
1422 on regular files that the caller doesn't own in
1423 world-writable sticky directories,
1424 unless the regular file is owned by the owner of the directory.
1425 .TP
1426 2
1427 As for the value 1,
1428 but the restriction also applies to group-writable sticky directories.
1429 .RE
1430 .IP
1431 The intent of the above protections is similar to
1432 .IR protected_fifos ,
1433 but allows an application to
1434 avoid writes to an attacker-controlled regular file,
1435 where the application expected to create one.
1436 .TP
1437 .IR /proc/sys/fs/protected_symlinks " (since Linux 3.6)"
1438 .\" commit 800179c9b8a1e796e441674776d11cd4c05d61d7
1439 When the value in this file is 0,
1440 no restrictions are placed on following symbolic links
1441 (i.e., this is the historical behavior before Linux 3.6).
1442 When the value in this file is 1, symbolic links are followed only
1443 in the following circumstances:
1444 .RS
1445 .IP \[bu] 3
1446 the filesystem UID of the process following the link matches
1447 the owner (UID) of the symbolic link
1448 (as described in
1449 .BR credentials (7),
1450 a process's filesystem UID is normally the same as its effective UID);
1451 .IP \[bu]
1452 the link is not in a sticky world-writable directory; or
1453 .IP \[bu]
1454 the symbolic link and its parent directory have the same owner (UID)
1455 .RE
1456 .IP
1457 A system call that fails to follow a symbolic link
1458 because of the above restrictions returns the error
1459 .B EACCES
1460 in
1461 .IR errno .
1462 .IP
1463 The default value in this file is 0.
1464 Setting the value to 1 avoids a longstanding class of security issues
1465 based on time-of-check, time-of-use races when accessing symbolic links.
1466 .TP
1467 .IR /proc/sys/fs/suid_dumpable " (since Linux 2.6.13)"
1468 .\" The following is based on text from Documentation/sysctl/kernel.txt
1469 The value in this file is assigned to a process's "dumpable" flag
1470 in the circumstances described in
1471 .BR prctl (2).
1472 In effect,
1473 the value in this file determines whether core dump files are
1474 produced for set-user-ID or otherwise protected/tainted binaries.
1475 The "dumpable" setting also affects the ownership of files in a process's
1476 .IR /proc/ pid
1477 directory, as described above.
1478 .IP
1479 Three different integer values can be specified:
1480 .RS
1481 .TP
1482 \fI0\ (default)\fP
1483 .\" In kernel source: SUID_DUMP_DISABLE
1484 This provides the traditional (pre-Linux 2.6.13) behavior.
1485 A core dump will not be produced for a process which has
1486 changed credentials (by calling
1487 .BR seteuid (2),
1488 .BR setgid (2),
1489 or similar, or by executing a set-user-ID or set-group-ID program)
1490 or whose binary does not have read permission enabled.
1491 .TP
1492 \fI1\ ("debug")\fP
1493 .\" In kernel source: SUID_DUMP_USER
1494 All processes dump core when possible.
1495 (Reasons why a process might nevertheless not dump core are described in
1496 .BR core (5).)
1497 The core dump is owned by the filesystem user ID of the dumping process
1498 and no security is applied.
1499 This is intended for system debugging situations only:
1500 this mode is insecure because it allows unprivileged users to
1501 examine the memory contents of privileged processes.
1502 .TP
1503 \fI2\ ("suidsafe")\fP
1504 .\" In kernel source: SUID_DUMP_ROOT
1505 Any binary which normally would not be dumped (see "0" above)
1506 is dumped readable by root only.
1507 This allows the user to remove the core dump file but not to read it.
1508 For security reasons core dumps in this mode will not overwrite one
1509 another or other files.
1510 This mode is appropriate when administrators are
1511 attempting to debug problems in a normal environment.
1512 .IP
1513 Additionally, since Linux 3.6,
1514 .\" 9520628e8ceb69fa9a4aee6b57f22675d9e1b709
1515 .I /proc/sys/kernel/core_pattern
1516 must either be an absolute pathname
1517 or a pipe command, as detailed in
1518 .BR core (5).
1519 Warnings will be written to the kernel log if
1520 .I core_pattern
1521 does not follow these rules, and no core dump will be produced.
1522 .\" 54b501992dd2a839e94e76aa392c392b55080ce8
1523 .RE
1524 .IP
1525 For details of the effect of a process's "dumpable" setting
1526 on ptrace access mode checking, see
1527 .BR ptrace (2).
1528 .TP
1529 .I /proc/sys/fs/super\-max
1530 This file
1531 controls the maximum number of superblocks, and
1532 thus the maximum number of mounted filesystems the kernel
1533 can have.
1534 You need increase only
1535 .I super\-max
1536 if you need to mount more filesystems than the current value in
1537 .I super\-max
1538 allows you to.
1539 .TP
1540 .I /proc/sys/fs/super\-nr
1541 This file
1542 contains the number of filesystems currently mounted.
1543 .TP
1544 .I /proc/sys/kernel
1545 This directory contains files controlling a range of kernel parameters,
1546 as described below.
1547 .TP
1548 .I /proc/sys/kernel/acct
1549 This file
1550 contains three numbers:
1551 .IR highwater ,
1552 .IR lowwater ,
1553 and
1554 .IR frequency .
1555 If BSD-style process accounting is enabled, these values control
1556 its behavior.
1557 If free space on filesystem where the log lives goes below
1558 .I lowwater
1559 percent, accounting suspends.
1560 If free space gets above
1561 .I highwater
1562 percent, accounting resumes.
1563 .I frequency
1564 determines
1565 how often the kernel checks the amount of free space (value is in
1566 seconds).
1567 Default values are 4, 2, and 30.
1568 That is, suspend accounting if 2% or less space is free; resume it
1569 if 4% or more space is free; consider information about amount of free space
1570 valid for 30 seconds.
1571 .TP
1572 .IR /proc/sys/kernel/auto_msgmni " (Linux 2.6.27 to Linux 3.18)"
1573 .\" commit 9eefe520c814f6f62c5d36a2ddcd3fb99dfdb30e (introduces feature)
1574 .\" commit 0050ee059f7fc86b1df2527aaa14ed5dc72f9973 (rendered redundant)
1575 From Linux 2.6.27 to Linux 3.18,
1576 this file was used to control recomputing of the value in
1577 .I /proc/sys/kernel/msgmni
1578 upon the addition or removal of memory or upon IPC namespace creation/removal.
1579 Echoing "1" into this file enabled
1580 .I msgmni
1581 automatic recomputing (and triggered a recomputation of
1582 .I msgmni
1583 based on the current amount of available memory and number of IPC namespaces).
1584 Echoing "0" disabled automatic recomputing.
1585 (Automatic recomputing was also disabled if a value was explicitly assigned to
1586 .IR /proc/sys/kernel/msgmni .)
1587 The default value in
1588 .I auto_msgmni
1589 was 1.
1590 .IP
1591 Since Linux 3.19, the content of this file has no effect (because
1592 .I msgmni
1593 .\" FIXME Must document the 3.19 'msgmni' changes.
1594 defaults to near the maximum value possible),
1595 and reads from this file always return the value "0".
1596 .TP
1597 .IR /proc/sys/kernel/cap_last_cap " (since Linux 3.2)"
1598 See
1599 .BR capabilities (7).
1600 .TP
1601 .IR /proc/sys/kernel/cap\-bound " (from Linux 2.2 to Linux 2.6.24)"
1602 This file holds the value of the kernel
1603 .I "capability bounding set"
1604 (expressed as a signed decimal number).
1605 This set is ANDed against the capabilities permitted to a process
1606 during
1607 .BR execve (2).
1608 Starting with Linux 2.6.25,
1609 the system-wide capability bounding set disappeared,
1610 and was replaced by a per-thread bounding set; see
1611 .BR capabilities (7).
1612 .TP
1613 .I /proc/sys/kernel/core_pattern
1614 See
1615 .BR core (5).
1616 .TP
1617 .I /proc/sys/kernel/core_pipe_limit
1618 See
1619 .BR core (5).
1620 .TP
1621 .I /proc/sys/kernel/core_uses_pid
1622 See
1623 .BR core (5).
1624 .TP
1625 .I /proc/sys/kernel/ctrl\-alt\-del
1626 This file
1627 controls the handling of Ctrl-Alt-Del from the keyboard.
1628 When the value in this file is 0, Ctrl-Alt-Del is trapped and
1629 sent to the
1630 .BR init (1)
1631 program to handle a graceful restart.
1632 When the value is greater than zero, Linux's reaction to a Vulcan
1633 Nerve Pinch (tm) will be an immediate reboot, without even
1634 syncing its dirty buffers.
1635 Note: when a program (like dosemu) has the keyboard in "raw"
1636 mode, the Ctrl-Alt-Del is intercepted by the program before it
1637 ever reaches the kernel tty layer, and it's up to the program
1638 to decide what to do with it.
1639 .TP
1640 .IR /proc/sys/kernel/dmesg_restrict " (since Linux 2.6.37)"
1641 The value in this file determines who can see kernel syslog contents.
1642 A value of 0 in this file imposes no restrictions.
1643 If the value is 1, only privileged users can read the kernel syslog.
1644 (See
1645 .BR syslog (2)
1646 for more details.)
1647 Since Linux 3.4,
1648 .\" commit 620f6e8e855d6d447688a5f67a4e176944a084e8
1649 only users with the
1650 .B CAP_SYS_ADMIN
1651 capability may change the value in this file.
1652 .TP
1653 .IR /proc/sys/kernel/domainname " and " /proc/sys/kernel/hostname
1654 can be used to set the NIS/YP domainname and the
1655 hostname of your box in exactly the same way as the commands
1656 .BR domainname (1)
1657 and
1658 .BR hostname (1),
1659 that is:
1660 .IP
1661 .in +4n
1662 .EX
1663 .RB "#" " echo \[aq]darkstar\[aq] > /proc/sys/kernel/hostname"
1664 .RB "#" " echo \[aq]mydomain\[aq] > /proc/sys/kernel/domainname"
1665 .EE
1666 .in
1667 .IP
1668 has the same effect as
1669 .IP
1670 .in +4n
1671 .EX
1672 .RB "#" " hostname \[aq]darkstar\[aq]"
1673 .RB "#" " domainname \[aq]mydomain\[aq]"
1674 .EE
1675 .in
1676 .IP
1677 Note, however, that the classic darkstar.frop.org has the
1678 hostname "darkstar" and DNS (Internet Domain Name Server)
1679 domainname "frop.org", not to be confused with the NIS (Network
1680 Information Service) or YP (Yellow Pages) domainname.
1681 These two
1682 domain names are in general different.
1683 For a detailed discussion
1684 see the
1685 .BR hostname (1)
1686 man page.
1687 .TP
1688 .I /proc/sys/kernel/hotplug
1689 This file
1690 contains the pathname for the hotplug policy agent.
1691 The default value in this file is
1692 .IR /sbin/hotplug .
1693 .TP
1694 .\" Removed in commit 87f504e5c78b910b0c1d6ffb89bc95e492322c84 (tglx/history.git)
1695 .IR /proc/sys/kernel/htab\-reclaim " (before Linux 2.4.9.2)"
1696 (PowerPC only) If this file is set to a nonzero value,
1697 the PowerPC htab
1698 .\" removed in commit 1b483a6a7b2998e9c98ad985d7494b9b725bd228, before Linux 2.6.28
1699 (see kernel file
1700 .IR Documentation/powerpc/ppc_htab.txt )
1701 is pruned
1702 each time the system hits the idle loop.
1703 .TP
1704 .I /proc/sys/kernel/keys/*
1705 This directory contains various files that define parameters and limits
1706 for the key-management facility.
1707 These files are described in
1708 .BR keyrings (7).
1709 .TP
1710 .IR /proc/sys/kernel/kptr_restrict " (since Linux 2.6.38)"
1711 .\" 455cd5ab305c90ffc422dd2e0fb634730942b257
1712 The value in this file determines whether kernel addresses are exposed via
1713 .I /proc
1714 files and other interfaces.
1715 A value of 0 in this file imposes no restrictions.
1716 If the value is 1, kernel pointers printed using the
1717 .I %pK
1718 format specifier will be replaced with zeros unless the user has the
1719 .B CAP_SYSLOG
1720 capability.
1721 If the value is 2, kernel pointers printed using the
1722 .I %pK
1723 format specifier will be replaced with zeros regardless
1724 of the user's capabilities.
1725 The initial default value for this file was 1,
1726 but the default was changed
1727 .\" commit 411f05f123cbd7f8aa1edcae86970755a6e2a9d9
1728 to 0 in Linux 2.6.39.
1729 Since Linux 3.4,
1730 .\" commit 620f6e8e855d6d447688a5f67a4e176944a084e8
1731 only users with the
1732 .B CAP_SYS_ADMIN
1733 capability can change the value in this file.
1734 .TP
1735 .I /proc/sys/kernel/l2cr
1736 (PowerPC only) This file
1737 contains a flag that controls the L2 cache of G3 processor
1738 boards.
1739 If 0, the cache is disabled.
1740 Enabled if nonzero.
1741 .TP
1742 .I /proc/sys/kernel/modprobe
1743 This file contains the pathname for the kernel module loader.
1744 The default value is
1745 .IR /sbin/modprobe .
1746 The file is present only if the kernel is built with the
1747 .B CONFIG_MODULES
1748 .RB ( CONFIG_KMOD
1749 in Linux 2.6.26 and earlier)
1750 option enabled.
1751 It is described by the Linux kernel source file
1752 .I Documentation/kmod.txt
1753 (present only in Linux 2.4 and earlier).
1754 .TP
1755 .IR /proc/sys/kernel/modules_disabled " (since Linux 2.6.31)"
1756 .\" 3d43321b7015387cfebbe26436d0e9d299162ea1
1757 .\" From Documentation/sysctl/kernel.txt
1758 A toggle value indicating if modules are allowed to be loaded
1759 in an otherwise modular kernel.
1760 This toggle defaults to off (0), but can be set true (1).
1761 Once true, modules can be neither loaded nor unloaded,
1762 and the toggle cannot be set back to false.
1763 The file is present only if the kernel is built with the
1764 .B CONFIG_MODULES
1765 option enabled.
1766 .TP
1767 .IR /proc/sys/kernel/msgmax " (since Linux 2.2)"
1768 This file defines
1769 a system-wide limit specifying the maximum number of bytes in
1770 a single message written on a System V message queue.
1771 .TP
1772 .IR /proc/sys/kernel/msgmni " (since Linux 2.4)"
1773 This file defines the system-wide limit on the number of
1774 message queue identifiers.
1775 See also
1776 .IR /proc/sys/kernel/auto_msgmni .
1777 .TP
1778 .IR /proc/sys/kernel/msgmnb " (since Linux 2.2)"
1779 This file defines a system-wide parameter used to initialize the
1780 .I msg_qbytes
1781 setting for subsequently created message queues.
1782 The
1783 .I msg_qbytes
1784 setting specifies the maximum number of bytes that may be written to the
1785 message queue.
1786 .TP
1787 .IR /proc/sys/kernel/ngroups_max " (since Linux 2.6.4)"
1788 This is a read-only file that displays the upper limit on the
1789 number of a process's group memberships.
1790 .TP
1791 .IR /proc/sys/kernel/ns_last_pid " (since Linux 3.3)"
1792 See
1793 .BR pid_namespaces (7).
1794 .TP
1795 .IR /proc/sys/kernel/ostype " and " /proc/sys/kernel/osrelease
1796 These files
1797 give substrings of
1798 .IR /proc/version .
1799 .TP
1800 .IR /proc/sys/kernel/overflowgid " and " /proc/sys/kernel/overflowuid
1801 These files duplicate the files
1802 .I /proc/sys/fs/overflowgid
1803 and
1804 .IR /proc/sys/fs/overflowuid .
1805 .TP
1806 .I /proc/sys/kernel/panic
1807 This file gives read/write access to the kernel variable
1808 .IR panic_timeout .
1809 If this is zero, the kernel will loop on a panic; if nonzero,
1810 it indicates that the kernel should autoreboot after this number
1811 of seconds.
1812 When you use the
1813 software watchdog device driver, the recommended setting is 60.
1814 .TP
1815 .IR /proc/sys/kernel/panic_on_oops " (since Linux 2.5.68)"
1816 This file controls the kernel's behavior when an oops
1817 or BUG is encountered.
1818 If this file contains 0, then the system
1819 tries to continue operation.
1820 If it contains 1, then the system
1821 delays a few seconds (to give klogd time to record the oops output)
1822 and then panics.
1823 If the
1824 .I /proc/sys/kernel/panic
1825 file is also nonzero, then the machine will be rebooted.
1826 .TP
1827 .IR /proc/sys/kernel/pid_max " (since Linux 2.5.34)"
1828 This file specifies the value at which PIDs wrap around
1829 (i.e., the value in this file is one greater than the maximum PID).
1830 PIDs greater than this value are not allocated;
1831 thus, the value in this file also acts as a system-wide limit
1832 on the total number of processes and threads.
1833 The default value for this file, 32768,
1834 results in the same range of PIDs as on earlier kernels.
1835 On 32-bit platforms, 32768 is the maximum value for
1836 .IR pid_max .
1837 On 64-bit systems,
1838 .I pid_max
1839 can be set to any value up to 2\[ha]22
1840 .RB ( PID_MAX_LIMIT ,
1841 approximately 4 million).
1842 .\" Prior to Linux 2.6.10, pid_max could also be raised above 32768 on 32-bit
1843 .\" platforms, but this broke /proc/[pid]
1844 .\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=109513010926152&w=2
1845 .TP
1846 .IR /proc/sys/kernel/powersave\-nap " (PowerPC only)"
1847 This file contains a flag.
1848 If set, Linux-PPC will use the "nap" mode of
1849 powersaving,
1850 otherwise the "doze" mode will be used.
1851 .TP
1852 .I /proc/sys/kernel/printk
1853 See
1854 .BR syslog (2).
1855 .TP
1856 .IR /proc/sys/kernel/pty " (since Linux 2.6.4)"
1857 This directory contains two files relating to the number of UNIX 98
1858 pseudoterminals (see
1859 .BR pts (4))
1860 on the system.
1861 .TP
1862 .I /proc/sys/kernel/pty/max
1863 This file defines the maximum number of pseudoterminals.
1864 .\" FIXME Document /proc/sys/kernel/pty/reserve
1865 .\" New in Linux 3.3
1866 .\" commit e9aba5158a80098447ff207a452a3418ae7ee386
1867 .TP
1868 .I /proc/sys/kernel/pty/nr
1869 This read-only file
1870 indicates how many pseudoterminals are currently in use.
1871 .TP
1872 .I /proc/sys/kernel/random
1873 This directory
1874 contains various parameters controlling the operation of the file
1875 .IR /dev/random .
1876 See
1877 .BR random (4)
1878 for further information.
1879 .TP
1880 .IR /proc/sys/kernel/random/uuid " (since Linux 2.4)"
1881 Each read from this read-only file returns a randomly generated 128-bit UUID,
1882 as a string in the standard UUID format.
1883 .TP
1884 .IR /proc/sys/kernel/randomize_va_space " (since Linux 2.6.12)"
1885 .\" Some further details can be found in Documentation/sysctl/kernel.txt
1886 Select the address space layout randomization (ASLR) policy for the system
1887 (on architectures that support ASLR).
1888 Three values are supported for this file:
1889 .RS
1890 .TP
1891 .B 0
1892 Turn ASLR off.
1893 This is the default for architectures that don't support ASLR,
1894 and when the kernel is booted with the
1895 .I norandmaps
1896 parameter.
1897 .TP
1898 .B 1
1899 Make the addresses of
1900 .BR mmap (2)
1901 allocations, the stack, and the VDSO page randomized.
1902 Among other things, this means that shared libraries will be
1903 loaded at randomized addresses.
1904 The text segment of PIE-linked binaries will also be loaded
1905 at a randomized address.
1906 This value is the default if the kernel was configured with
1907 .BR CONFIG_COMPAT_BRK .
1908 .TP
1909 .B 2
1910 (Since Linux 2.6.25)
1911 .\" commit c1d171a002942ea2d93b4fbd0c9583c56fce0772
1912 Also support heap randomization.
1913 This value is the default if the kernel was not configured with
1914 .BR CONFIG_COMPAT_BRK .
1915 .RE
1916 .TP
1917 .I /proc/sys/kernel/real\-root\-dev
1918 This file is documented in the Linux kernel source file
1919 .I Documentation/admin\-guide/initrd.rst
1920 .\" commit 9d85025b0418163fae079c9ba8f8445212de8568
1921 (or
1922 .I Documentation/initrd.txt
1923 before Linux 4.10).
1924 .TP
1925 .IR /proc/sys/kernel/reboot\-cmd " (Sparc only)"
1926 This file seems to be a way to give an argument to the SPARC
1927 ROM/Flash boot loader.
1928 Maybe to tell it what to do after
1929 rebooting?
1930 .TP
1931 .I /proc/sys/kernel/rtsig\-max
1932 (Up to and including Linux 2.6.7; see
1933 .BR setrlimit (2))
1934 This file can be used to tune the maximum number
1935 of POSIX real-time (queued) signals that can be outstanding
1936 in the system.
1937 .TP
1938 .I /proc/sys/kernel/rtsig\-nr
1939 (Up to and including Linux 2.6.7.)
1940 This file shows the number of POSIX real-time signals currently queued.
1941 .TP
1942 .IR /proc/ pid /sched_autogroup_enabled " (since Linux 2.6.38)"
1943 .\" commit 5091faa449ee0b7d73bc296a93bca9540fc51d0a
1944 See
1945 .BR sched (7).
1946 .TP
1947 .IR /proc/sys/kernel/sched_child_runs_first " (since Linux 2.6.23)"
1948 If this file contains the value zero, then, after a
1949 .BR fork (2),
1950 the parent is first scheduled on the CPU.
1951 If the file contains a nonzero value,
1952 then the child is scheduled first on the CPU.
1953 (Of course, on a multiprocessor system,
1954 the parent and the child might both immediately be scheduled on a CPU.)
1955 .TP
1956 .IR /proc/sys/kernel/sched_rr_timeslice_ms " (since Linux 3.9)"
1957 See
1958 .BR sched_rr_get_interval (2).
1959 .TP
1960 .IR /proc/sys/kernel/sched_rt_period_us " (since Linux 2.6.25)"
1961 See
1962 .BR sched (7).
1963 .TP
1964 .IR /proc/sys/kernel/sched_rt_runtime_us " (since Linux 2.6.25)"
1965 See
1966 .BR sched (7).
1967 .TP
1968 .IR /proc/sys/kernel/seccomp " (since Linux 4.14)"
1969 .\" commit 8e5f1ad116df6b0de65eac458d5e7c318d1c05af
1970 This directory provides additional seccomp information and
1971 configuration.
1972 See
1973 .BR seccomp (2)
1974 for further details.
1975 .TP
1976 .IR /proc/sys/kernel/sem " (since Linux 2.4)"
1977 This file contains 4 numbers defining limits for System V IPC semaphores.
1978 These fields are, in order:
1979 .RS
1980 .TP
1981 SEMMSL
1982 The maximum semaphores per semaphore set.
1983 .TP
1984 SEMMNS
1985 A system-wide limit on the number of semaphores in all semaphore sets.
1986 .TP
1987 SEMOPM
1988 The maximum number of operations that may be specified in a
1989 .BR semop (2)
1990 call.
1991 .TP
1992 SEMMNI
1993 A system-wide limit on the maximum number of semaphore identifiers.
1994 .RE
1995 .TP
1996 .I /proc/sys/kernel/sg\-big\-buff
1997 This file
1998 shows the size of the generic SCSI device (sg) buffer.
1999 You can't tune it just yet, but you could change it at
2000 compile time by editing
2001 .I include/scsi/sg.h
2002 and changing
2003 the value of
2004 .BR SG_BIG_BUFF .
2005 However, there shouldn't be any reason to change this value.
2006 .TP
2007 .IR /proc/sys/kernel/shm_rmid_forced " (since Linux 3.1)"
2008 .\" commit b34a6b1da371ed8af1221459a18c67970f7e3d53
2009 .\" See also Documentation/sysctl/kernel.txt
2010 If this file is set to 1, all System V shared memory segments will
2011 be marked for destruction as soon as the number of attached processes
2012 falls to zero;
2013 in other words, it is no longer possible to create shared memory segments
2014 that exist independently of any attached process.
2015 .IP
2016 The effect is as though a
2017 .BR shmctl (2)
2018 .B IPC_RMID
2019 is performed on all existing segments as well as all segments
2020 created in the future (until this file is reset to 0).
2021 Note that existing segments that are attached to no process will be
2022 immediately destroyed when this file is set to 1.
2023 Setting this option will also destroy segments that were created,
2024 but never attached,
2025 upon termination of the process that created the segment with
2026 .BR shmget (2).
2027 .IP
2028 Setting this file to 1 provides a way of ensuring that
2029 all System V shared memory segments are counted against the
2030 resource usage and resource limits (see the description of
2031 .B RLIMIT_AS
2032 in
2033 .BR getrlimit (2))
2034 of at least one process.
2035 .IP
2036 Because setting this file to 1 produces behavior that is nonstandard
2037 and could also break existing applications,
2038 the default value in this file is 0.
2039 Set this file to 1 only if you have a good understanding
2040 of the semantics of the applications using
2041 System V shared memory on your system.
2042 .TP
2043 .IR /proc/sys/kernel/shmall " (since Linux 2.2)"
2044 This file
2045 contains the system-wide limit on the total number of pages of
2046 System V shared memory.
2047 .TP
2048 .IR /proc/sys/kernel/shmmax " (since Linux 2.2)"
2049 This file
2050 can be used to query and set the run-time limit
2051 on the maximum (System V IPC) shared memory segment size that can be
2052 created.
2053 Shared memory segments up to 1 GB are now supported in the
2054 kernel.
2055 This value defaults to
2056 .BR SHMMAX .
2057 .TP
2058 .IR /proc/sys/kernel/shmmni " (since Linux 2.4)"
2059 This file
2060 specifies the system-wide maximum number of System V shared memory
2061 segments that can be created.
2062 .TP
2063 .IR /proc/sys/kernel/sysctl_writes_strict " (since Linux 3.16)"
2064 .\" commit f88083005ab319abba5d0b2e4e997558245493c8
2065 .\" commit 2ca9bb456ada8bcbdc8f77f8fc78207653bbaa92
2066 .\" commit f4aacea2f5d1a5f7e3154e967d70cf3f711bcd61
2067 .\" commit 24fe831c17ab8149413874f2fd4e5c8a41fcd294
2068 The value in this file determines how the file offset affects
2069 the behavior of updating entries in files under
2070 .IR /proc/sys .
2071 The file has three possible values:
2072 .RS
2073 .TP 4
2074 \-1
2075 This provides legacy handling, with no printk warnings.
2076 Each
2077 .BR write (2)
2078 must fully contain the value to be written,
2079 and multiple writes on the same file descriptor
2080 will overwrite the entire value, regardless of the file position.
2081 .TP
2082 0
2083 (default) This provides the same behavior as for \-1,
2084 but printk warnings are written for processes that
2085 perform writes when the file offset is not 0.
2086 .TP
2087 1
2088 Respect the file offset when writing strings into
2089 .I /proc/sys
2090 files.
2091 Multiple writes will
2092 .I append
2093 to the value buffer.
2094 Anything written beyond the maximum length
2095 of the value buffer will be ignored.
2096 Writes to numeric
2097 .I /proc/sys
2098 entries must always be at file offset 0 and the value must be
2099 fully contained in the buffer provided to
2100 .BR write (2).
2101 .\" FIXME .
2102 .\" With /proc/sys/kernel/sysctl_writes_strict==1, writes at an
2103 .\" offset other than 0 do not generate an error. Instead, the
2104 .\" write() succeeds, but the file is left unmodified.
2105 .\" This is surprising. The behavior may change in the future.
2106 .\" See thread.gmane.org/gmane.linux.man/9197
2107 .\" From: Michael Kerrisk (man-pages <mtk.manpages@...>
2108 .\" Subject: sysctl_writes_strict documentation + an oddity?
2109 .\" Newsgroups: gmane.linux.man, gmane.linux.kernel
2110 .\" Date: 2015-05-09 08:54:11 GMT
2111 .RE
2112 .TP
2113 .I /proc/sys/kernel/sysrq
2114 This file controls the functions allowed to be invoked by the SysRq key.
2115 By default,
2116 the file contains 1 meaning that every possible SysRq request is allowed
2117 (in older kernel versions, SysRq was disabled by default,
2118 and you were required to specifically enable it at run-time,
2119 but this is not the case any more).
2120 Possible values in this file are:
2121 .RS
2122 .TP 5
2123 0
2124 Disable sysrq completely
2125 .TP
2126 1
2127 Enable all functions of sysrq
2128 .TP
2129 > 1
2130 Bit mask of allowed sysrq functions, as follows:
2131 .PD 0
2132 .RS
2133 .TP 5
2134 \ \ 2
2135 Enable control of console logging level
2136 .TP
2137 \ \ 4
2138 Enable control of keyboard (SAK, unraw)
2139 .TP
2140 \ \ 8
2141 Enable debugging dumps of processes etc.
2142 .TP
2143 \ 16
2144 Enable sync command
2145 .TP
2146 \ 32
2147 Enable remount read-only
2148 .TP
2149 \ 64
2150 Enable signaling of processes (term, kill, oom-kill)
2151 .TP
2152 128
2153 Allow reboot/poweroff
2154 .TP
2155 256
2156 Allow nicing of all real-time tasks
2157 .RE
2158 .PD
2159 .RE
2160 .IP
2161 This file is present only if the
2162 .B CONFIG_MAGIC_SYSRQ
2163 kernel configuration option is enabled.
2164 For further details see the Linux kernel source file
2165 .I Documentation/admin\-guide/sysrq.rst
2166 .\" commit 9d85025b0418163fae079c9ba8f8445212de8568
2167 (or
2168 .I Documentation/sysrq.txt
2169 before Linux 4.10).
2170 .TP
2171 .I /proc/sys/kernel/version
2172 This file contains a string such as:
2173 .IP
2174 .in +4n
2175 .EX
2176 #5 Wed Feb 25 21:49:24 MET 1998
2177 .EE
2178 .in
2179 .IP
2180 The "#5" means that
2181 this is the fifth kernel built from this source base and the
2182 date following it indicates the time the kernel was built.
2183 .TP
2184 .IR /proc/sys/kernel/threads\-max " (since Linux 2.3.11)"
2185 .\" The following is based on Documentation/sysctl/kernel.txt
2186 This file specifies the system-wide limit on the number of
2187 threads (tasks) that can be created on the system.
2188 .IP
2189 Since Linux 4.1,
2190 .\" commit 230633d109e35b0a24277498e773edeb79b4a331
2191 the value that can be written to
2192 .I threads\-max
2193 is bounded.
2194 The minimum value that can be written is 20.
2195 The maximum value that can be written is given by the
2196 constant
2197 .B FUTEX_TID_MASK
2198 (0x3fffffff).
2199 If a value outside of this range is written to
2200 .IR threads\-max ,
2201 the error
2202 .B EINVAL
2203 occurs.
2204 .IP
2205 The value written is checked against the available RAM pages.
2206 If the thread structures would occupy too much (more than 1/8th)
2207 of the available RAM pages,
2208 .I threads\-max
2209 is reduced accordingly.
2210 .TP
2211 .IR /proc/sys/kernel/yama/ptrace_scope " (since Linux 3.5)"
2212 See
2213 .BR ptrace (2).
2214 .TP
2215 .IR /proc/sys/kernel/zero\-paged " (PowerPC only)"
2216 This file
2217 contains a flag.
2218 When enabled (nonzero), Linux-PPC will pre-zero pages in
2219 the idle loop, possibly speeding up get_free_pages.
2220 .TP
2221 .I /proc/sys/net
2222 This directory contains networking stuff.
2223 Explanations for some of the files under this directory can be found in
2224 .BR tcp (7)
2225 and
2226 .BR ip (7).
2227 .TP
2228 .I /proc/sys/net/core/bpf_jit_enable
2229 See
2230 .BR bpf (2).
2231 .TP
2232 .I /proc/sys/net/core/somaxconn
2233 This file defines a ceiling value for the
2234 .I backlog
2235 argument of
2236 .BR listen (2);
2237 see the
2238 .BR listen (2)
2239 manual page for details.
2240 .TP
2241 .I /proc/sys/proc
2242 This directory may be empty.
2243 .TP
2244 .I /proc/sys/sunrpc
2245 This directory supports Sun remote procedure call for network filesystem
2246 (NFS).
2247 On some systems, it is not present.
2248 .TP
2249 .IR /proc/sys/user " (since Linux 4.9)"
2250 See
2251 .BR namespaces (7).
2252 .TP
2253 .I /proc/sys/vm
2254 This directory contains files for memory management tuning, buffer, and
2255 cache management.
2256 .TP
2257 .IR /proc/sys/vm/admin_reserve_kbytes " (since Linux 3.10)"
2258 .\" commit 4eeab4f5580d11bffedc697684b91b0bca0d5009
2259 This file defines the amount of free memory (in KiB) on the system that
2260 should be reserved for users with the capability
2261 .BR CAP_SYS_ADMIN .
2262 .IP
2263 The default value in this file is the minimum of [3% of free pages, 8MiB]
2264 expressed as KiB.
2265 The default is intended to provide enough for the superuser
2266 to log in and kill a process, if necessary,
2267 under the default overcommit 'guess' mode (i.e., 0 in
2268 .IR /proc/sys/vm/overcommit_memory ).
2269 .IP
2270 Systems running in "overcommit never" mode (i.e., 2 in
2271 .IR /proc/sys/vm/overcommit_memory )
2272 should increase the value in this file to account
2273 for the full virtual memory size of the programs used to recover (e.g.,
2274 .BR login (1)
2275 .BR ssh (1),
2276 and
2277 .BR top (1))
2278 Otherwise, the superuser may not be able to log in to recover the system.
2279 For example, on x86-64 a suitable value is 131072 (128MiB reserved).
2280 .IP
2281 Changing the value in this file takes effect whenever
2282 an application requests memory.
2283 .TP
2284 .IR /proc/sys/vm/compact_memory " (since Linux 2.6.35)"
2285 When 1 is written to this file, all zones are compacted such that free
2286 memory is available in contiguous blocks where possible.
2287 The effect of this action can be seen by examining
2288 .IR /proc/buddyinfo .
2289 .IP
2290 Present only if the kernel was configured with
2291 .BR CONFIG_COMPACTION .
2292 .TP
2293 .IR /proc/sys/vm/drop_caches " (since Linux 2.6.16)"
2294 Writing to this file causes the kernel to drop clean caches, dentries, and
2295 inodes from memory, causing that memory to become free.
2296 This can be useful for memory management testing and
2297 performing reproducible filesystem benchmarks.
2298 Because writing to this file causes the benefits of caching to be lost,
2299 it can degrade overall system performance.
2300 .IP
2301 To free pagecache, use:
2302 .IP
2303 .in +4n
2304 .EX
2305 echo 1 > /proc/sys/vm/drop_caches
2306 .EE
2307 .in
2308 .IP
2309 To free dentries and inodes, use:
2310 .IP
2311 .in +4n
2312 .EX
2313 echo 2 > /proc/sys/vm/drop_caches
2314 .EE
2315 .in
2316 .IP
2317 To free pagecache, dentries, and inodes, use:
2318 .IP
2319 .in +4n
2320 .EX
2321 echo 3 > /proc/sys/vm/drop_caches
2322 .EE
2323 .in
2324 .IP
2325 Because writing to this file is a nondestructive operation and dirty objects
2326 are not freeable, the
2327 user should run
2328 .BR sync (1)
2329 first.
2330 .TP
2331 .IR /proc/sys/vm/sysctl_hugetlb_shm_group " (since Linux 2.6.7)"
2332 This writable file contains a group ID that is allowed
2333 to allocate memory using huge pages.
2334 If a process has a filesystem group ID or any supplementary group ID that
2335 matches this group ID,
2336 then it can make huge-page allocations without holding the
2337 .B CAP_IPC_LOCK
2338 capability; see
2339 .BR memfd_create (2),
2340 .BR mmap (2),
2341 and
2342 .BR shmget (2).
2343 .TP
2344 .IR /proc/sys/vm/legacy_va_layout " (since Linux 2.6.9)"
2345 .\" The following is from Documentation/filesystems/proc.txt
2346 If nonzero, this disables the new 32-bit memory-mapping layout;
2347 the kernel will use the legacy (2.4) layout for all processes.
2348 .TP
2349 .IR /proc/sys/vm/memory_failure_early_kill " (since Linux 2.6.32)"
2350 .\" The following is based on the text in Documentation/sysctl/vm.txt
2351 Control how to kill processes when an uncorrected memory error
2352 (typically a 2-bit error in a memory module)
2353 that cannot be handled by the kernel
2354 is detected in the background by hardware.
2355 In some cases (like the page still having a valid copy on disk),
2356 the kernel will handle the failure
2357 transparently without affecting any applications.
2358 But if there is no other up-to-date copy of the data,
2359 it will kill processes to prevent any data corruptions from propagating.
2360 .IP
2361 The file has one of the following values:
2362 .RS
2363 .TP
2364 .B 1
2365 Kill all processes that have the corrupted-and-not-reloadable page mapped
2366 as soon as the corruption is detected.
2367 Note that this is not supported for a few types of pages,
2368 such as kernel internally
2369 allocated data or the swap cache, but works for the majority of user pages.
2370 .TP
2371 .B 0
2372 Unmap the corrupted page from all processes and kill a process
2373 only if it tries to access the page.
2374 .RE
2375 .IP
2376 The kill is performed using a
2377 .B SIGBUS
2378 signal with
2379 .I si_code
2380 set to
2381 .BR BUS_MCEERR_AO .
2382 Processes can handle this if they want to; see
2383 .BR sigaction (2)
2384 for more details.
2385 .IP
2386 This feature is active only on architectures/platforms with advanced machine
2387 check handling and depends on the hardware capabilities.
2388 .IP
2389 Applications can override the
2390 .I memory_failure_early_kill
2391 setting individually with the
2392 .BR prctl (2)
2393 .B PR_MCE_KILL
2394 operation.
2395 .IP
2396 Present only if the kernel was configured with
2397 .BR CONFIG_MEMORY_FAILURE .
2398 .TP
2399 .IR /proc/sys/vm/memory_failure_recovery " (since Linux 2.6.32)"
2400 .\" The following is based on the text in Documentation/sysctl/vm.txt
2401 Enable memory failure recovery (when supported by the platform).
2402 .RS
2403 .TP
2404 .B 1
2405 Attempt recovery.
2406 .TP
2407 .B 0
2408 Always panic on a memory failure.
2409 .RE
2410 .IP
2411 Present only if the kernel was configured with
2412 .BR CONFIG_MEMORY_FAILURE .
2413 .TP
2414 .IR /proc/sys/vm/oom_dump_tasks " (since Linux 2.6.25)"
2415 .\" The following is from Documentation/sysctl/vm.txt
2416 Enables a system-wide task dump (excluding kernel threads) to be
2417 produced when the kernel performs an OOM-killing.
2418 The dump includes the following information
2419 for each task (thread, process):
2420 thread ID, real user ID, thread group ID (process ID),
2421 virtual memory size, resident set size,
2422 the CPU that the task is scheduled on,
2423 oom_adj score (see the description of
2424 .IR /proc/ pid /oom_adj ),
2425 and command name.
2426 This is helpful to determine why the OOM-killer was invoked
2427 and to identify the rogue task that caused it.
2428 .IP
2429 If this contains the value zero, this information is suppressed.
2430 On very large systems with thousands of tasks,
2431 it may not be feasible to dump the memory state information for each one.
2432 Such systems should not be forced to incur a performance penalty in
2433 OOM situations when the information may not be desired.
2434 .IP
2435 If this is set to nonzero, this information is shown whenever the
2436 OOM-killer actually kills a memory-hogging task.
2437 .IP
2438 The default value is 0.
2439 .TP
2440 .IR /proc/sys/vm/oom_kill_allocating_task " (since Linux 2.6.24)"
2441 .\" The following is from Documentation/sysctl/vm.txt
2442 This enables or disables killing the OOM-triggering task in
2443 out-of-memory situations.
2444 .IP
2445 If this is set to zero, the OOM-killer will scan through the entire
2446 tasklist and select a task based on heuristics to kill.
2447 This normally selects a rogue memory-hogging task that
2448 frees up a large amount of memory when killed.
2449 .IP
2450 If this is set to nonzero, the OOM-killer simply kills the task that
2451 triggered the out-of-memory condition.
2452 This avoids a possibly expensive tasklist scan.
2453 .IP
2454 If
2455 .I /proc/sys/vm/panic_on_oom
2456 is nonzero, it takes precedence over whatever value is used in
2457 .IR /proc/sys/vm/oom_kill_allocating_task .
2458 .IP
2459 The default value is 0.
2460 .TP
2461 .IR /proc/sys/vm/overcommit_kbytes " (since Linux 3.14)"
2462 .\" commit 49f0ce5f92321cdcf741e35f385669a421013cb7
2463 This writable file provides an alternative to
2464 .I /proc/sys/vm/overcommit_ratio
2465 for controlling the
2466 .I CommitLimit
2467 when
2468 .I /proc/sys/vm/overcommit_memory
2469 has the value 2.
2470 It allows the amount of memory overcommitting to be specified as
2471 an absolute value (in kB),
2472 rather than as a percentage, as is done with
2473 .IR overcommit_ratio .
2474 This allows for finer-grained control of
2475 .I CommitLimit
2476 on systems with extremely large memory sizes.
2477 .IP
2478 Only one of
2479 .I overcommit_kbytes
2480 or
2481 .I overcommit_ratio
2482 can have an effect:
2483 if
2484 .I overcommit_kbytes
2485 has a nonzero value, then it is used to calculate
2486 .IR CommitLimit ,
2487 otherwise
2488 .I overcommit_ratio
2489 is used.
2490 Writing a value to either of these files causes the
2491 value in the other file to be set to zero.
2492 .TP
2493 .I /proc/sys/vm/overcommit_memory
2494 This file contains the kernel virtual memory accounting mode.
2495 Values are:
2496 .RS
2497 .IP
2498 0: heuristic overcommit (this is the default)
2499 .br
2500 1: always overcommit, never check
2501 .br
2502 2: always check, never overcommit
2503 .RE
2504 .IP
2505 In mode 0, calls of
2506 .BR mmap (2)
2507 with
2508 .B MAP_NORESERVE
2509 are not checked, and the default check is very weak,
2510 leading to the risk of getting a process "OOM-killed".
2511 .IP
2512 In mode 1, the kernel pretends there is always enough memory,
2513 until memory actually runs out.
2514 One use case for this mode is scientific computing applications
2515 that employ large sparse arrays.
2516 Before Linux 2.6.0, any nonzero value implies mode 1.
2517 .IP
2518 In mode 2 (available since Linux 2.6), the total virtual address space
2519 that can be allocated
2520 .RI ( CommitLimit
2521 in
2522 .IR /proc/meminfo )
2523 is calculated as
2524 .IP
2525 .in +4n
2526 .EX
2527 CommitLimit = (total_RAM \- total_huge_TLB) *
2528 overcommit_ratio / 100 + total_swap
2529 .EE
2530 .in
2531 .IP
2532 where:
2533 .RS
2534 .IP \[bu] 3
2535 .I total_RAM
2536 is the total amount of RAM on the system;
2537 .IP \[bu]
2538 .I total_huge_TLB
2539 is the amount of memory set aside for huge pages;
2540 .IP \[bu]
2541 .I overcommit_ratio
2542 is the value in
2543 .IR /proc/sys/vm/overcommit_ratio ;
2544 and
2545 .IP \[bu]
2546 .I total_swap
2547 is the amount of swap space.
2548 .RE
2549 .IP
2550 For example, on a system with 16 GB of physical RAM, 16 GB
2551 of swap, no space dedicated to huge pages, and an
2552 .I overcommit_ratio
2553 of 50, this formula yields a
2554 .I CommitLimit
2555 of 24 GB.
2556 .IP
2557 Since Linux 3.14, if the value in
2558 .I /proc/sys/vm/overcommit_kbytes
2559 is nonzero, then
2560 .I CommitLimit
2561 is instead calculated as:
2562 .IP
2563 .in +4n
2564 .EX
2565 CommitLimit = overcommit_kbytes + total_swap
2566 .EE
2567 .in
2568 .IP
2569 See also the description of
2570 .I /proc/sys/vm/admin_reserve_kbytes
2571 and
2572 .IR /proc/sys/vm/user_reserve_kbytes .
2573 .TP
2574 .IR /proc/sys/vm/overcommit_ratio " (since Linux 2.6.0)"
2575 This writable file defines a percentage by which memory
2576 can be overcommitted.
2577 The default value in the file is 50.
2578 See the description of
2579 .IR /proc/sys/vm/overcommit_memory .
2580 .TP
2581 .IR /proc/sys/vm/panic_on_oom " (since Linux 2.6.18)"
2582 .\" The following is adapted from Documentation/sysctl/vm.txt
2583 This enables or disables a kernel panic in
2584 an out-of-memory situation.
2585 .IP
2586 If this file is set to the value 0,
2587 the kernel's OOM-killer will kill some rogue process.
2588 Usually, the OOM-killer is able to kill a rogue process and the
2589 system will survive.
2590 .IP
2591 If this file is set to the value 1,
2592 then the kernel normally panics when out-of-memory happens.
2593 However, if a process limits allocations to certain nodes
2594 using memory policies
2595 .RB ( mbind (2)
2596 .BR MPOL_BIND )
2597 or cpusets
2598 .RB ( cpuset (7))
2599 and those nodes reach memory exhaustion status,
2600 one process may be killed by the OOM-killer.
2601 No panic occurs in this case:
2602 because other nodes' memory may be free,
2603 this means the system as a whole may not have reached
2604 an out-of-memory situation yet.
2605 .IP
2606 If this file is set to the value 2,
2607 the kernel always panics when an out-of-memory condition occurs.
2608 .IP
2609 The default value is 0.
2610 1 and 2 are for failover of clustering.
2611 Select either according to your policy of failover.
2612 .TP
2613 .I /proc/sys/vm/swappiness
2614 .\" The following is from Documentation/sysctl/vm.txt
2615 The value in this file controls how aggressively the kernel will swap
2616 memory pages.
2617 Higher values increase aggressiveness, lower values
2618 decrease aggressiveness.
2619 The default value is 60.
2620 .TP
2621 .IR /proc/sys/vm/user_reserve_kbytes " (since Linux 3.10)"
2622 .\" commit c9b1d0981fcce3d9976d7b7a56e4e0503bc610dd
2623 Specifies an amount of memory (in KiB) to reserve for user processes.
2624 This is intended to prevent a user from starting a single memory hogging
2625 process, such that they cannot recover (kill the hog).
2626 The value in this file has an effect only when
2627 .I /proc/sys/vm/overcommit_memory
2628 is set to 2 ("overcommit never" mode).
2629 In this case, the system reserves an amount of memory that is the minimum
2630 of [3% of current process size,
2631 .IR user_reserve_kbytes ].
2632 .IP
2633 The default value in this file is the minimum of [3% of free pages, 128MiB]
2634 expressed as KiB.
2635 .IP
2636 If the value in this file is set to zero,
2637 then a user will be allowed to allocate all free memory with a single process
2638 (minus the amount reserved by
2639 .IR /proc/sys/vm/admin_reserve_kbytes ).
2640 Any subsequent attempts to execute a command will result in
2641 "fork: Cannot allocate memory".
2642 .IP
2643 Changing the value in this file takes effect whenever
2644 an application requests memory.
2645 .TP
2646 .IR /proc/sys/vm/unprivileged_userfaultfd " (since Linux 5.2)"
2647 .\" cefdca0a86be517bc390fc4541e3674b8e7803b0
2648 This (writable) file exposes a flag that controls whether
2649 unprivileged processes are allowed to employ
2650 .BR userfaultfd (2).
2651 If this file has the value 1, then unprivileged processes may use
2652 .BR userfaultfd (2).
2653 If this file has the value 0, then only processes that have the
2654 .B CAP_SYS_PTRACE
2655 capability may employ
2656 .BR userfaultfd (2).
2657 The default value in this file is 1.
2658 .TP
2659 .IR /proc/sysrq\-trigger " (since Linux 2.4.21)"
2660 Writing a character to this file triggers the same SysRq function as
2661 typing ALT-SysRq-<character> (see the description of
2662 .IR /proc/sys/kernel/sysrq ).
2663 This file is normally writable only by
2664 .IR root .
2665 For further details see the Linux kernel source file
2666 .I Documentation/admin\-guide/sysrq.rst
2667 .\" commit 9d85025b0418163fae079c9ba8f8445212de8568
2668 (or
2669 .I Documentation/sysrq.txt
2670 before Linux 4.10).
2671 .TP
2672 .I /proc/sysvipc
2673 Subdirectory containing the pseudo-files
2674 .IR msg ", " sem " and " shm "."
2675 These files list the System V Interprocess Communication (IPC) objects
2676 (respectively: message queues, semaphores, and shared memory)
2677 that currently exist on the system,
2678 providing similar information to that available via
2679 .BR ipcs (1).
2680 These files have headers and are formatted (one IPC object per line)
2681 for easy understanding.
2682 .BR sysvipc (7)
2683 provides further background on the information shown by these files.
2684 .TP
2685 .IR /proc/timer_list " (since Linux 2.6.21)"
2686 .\" commit 289f480af87e45f7a6de6ba9b4c061c2e259fe98
2687 This read-only file exposes a list of all currently pending
2688 (high-resolution) timers,
2689 all clock-event sources, and their parameters in a human-readable form.
2690 .TP
2691 .IR /proc/timer_stats " (from Linux 2.6.21 until Linux 4.10)"
2692 .\" commit 82f67cd9fca8c8762c15ba7ed0d5747588c1e221
2693 .\" Date: Fri Feb 16 01:28:13 2007 -0800
2694 .\" Text largely derived from Documentation/timers/timer_stats.txt
2695 .\" removed in commit dfb4357da6ddbdf57d583ba64361c9d792b0e0b1
2696 .\" Date: Wed Feb 8 11:26:59 2017 -0800
2697 This is a debugging facility to make timer (ab)use in a Linux
2698 system visible to kernel and user-space developers.
2699 It can be used by kernel and user-space developers to verify that
2700 their code does not make undue use of timers.
2701 The goal is to avoid unnecessary wakeups,
2702 thereby optimizing power consumption.
2703 .IP
2704 If enabled in the kernel
2705 .RB ( CONFIG_TIMER_STATS ),
2706 but not used,
2707 it has almost zero run-time overhead and a relatively small
2708 data-structure overhead.
2709 Even if collection is enabled at run time, overhead is low:
2710 all the locking is per-CPU and lookup is hashed.
2711 .IP
2712 The
2713 .I /proc/timer_stats
2714 file is used both to control sampling facility and to read out the
2715 sampled information.
2716 .IP
2717 The
2718 .I timer_stats
2719 functionality is inactive on bootup.
2720 A sampling period can be started using the following command:
2721 .IP
2722 .in +4n
2723 .EX
2724 # echo 1 > /proc/timer_stats
2725 .EE
2726 .in
2727 .IP
2728 The following command stops a sampling period:
2729 .IP
2730 .in +4n
2731 .EX
2732 # echo 0 > /proc/timer_stats
2733 .EE
2734 .in
2735 .IP
2736 The statistics can be retrieved by:
2737 .IP
2738 .in +4n
2739 .EX
2740 $ cat /proc/timer_stats
2741 .EE
2742 .in
2743 .IP
2744 While sampling is enabled, each readout from
2745 .I /proc/timer_stats
2746 will see
2747 newly updated statistics.
2748 Once sampling is disabled, the sampled information
2749 is kept until a new sample period is started.
2750 This allows multiple readouts.
2751 .IP
2752 Sample output from
2753 .IR /proc/timer_stats :
2754 .IP
2755 .in +4n
2756 .EX
2757 .RB $ " cat /proc/timer_stats"
2758 Timer Stats Version: v0.3
2759 Sample period: 1.764 s
2760 Collection: active
2761 255, 0 swapper/3 hrtimer_start_range_ns (tick_sched_timer)
2762 71, 0 swapper/1 hrtimer_start_range_ns (tick_sched_timer)
2763 58, 0 swapper/0 hrtimer_start_range_ns (tick_sched_timer)
2764 4, 1694 gnome\-shell mod_delayed_work_on (delayed_work_timer_fn)
2765 17, 7 rcu_sched rcu_gp_kthread (process_timeout)
2766 \&...
2767 1, 4911 kworker/u16:0 mod_delayed_work_on (delayed_work_timer_fn)
2768 1D, 2522 kworker/0:0 queue_delayed_work_on (delayed_work_timer_fn)
2769 1029 total events, 583.333 events/sec
2770 .EE
2771 .in
2772 .IP
2773 The output columns are:
2774 .RS
2775 .IP [1] 5
2776 a count of the number of events,
2777 optionally (since Linux 2.6.23) followed by the letter \[aq]D\[aq]
2778 .\" commit c5c061b8f9726bc2c25e19dec227933a13d1e6b7 deferrable timers
2779 if this is a deferrable timer;
2780 .IP [2]
2781 the PID of the process that initialized the timer;
2782 .IP [3]
2783 the name of the process that initialized the timer;
2784 .IP [4]
2785 the function where the timer was initialized; and
2786 (in parentheses)
2787 the callback function that is associated with the timer.
2788 .RE
2789 .IP
2790 During the Linux 4.11 development cycle,
2791 this file was removed because of security concerns,
2792 as it exposes information across namespaces.
2793 Furthermore, it is possible to obtain
2794 the same information via in-kernel tracing facilities such as ftrace.
2795 .TP
2796 .I /proc/tty
2797 Subdirectory containing the pseudo-files and subdirectories for
2798 tty drivers and line disciplines.
2799 .TP
2800 .I /proc/uptime
2801 This file contains two numbers (values in seconds): the uptime of the
2802 system (including time spent in suspend) and the amount of time spent
2803 in the idle process.
2804 .TP
2805 .I /proc/version
2806 This string identifies the kernel version that is currently running.
2807 It includes the contents of
2808 .IR /proc/sys/kernel/ostype ,
2809 .IR /proc/sys/kernel/osrelease ,
2810 and
2811 .IR /proc/sys/kernel/version .
2812 For example:
2813 .IP
2814 .in +4n
2815 .EX
2816 Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
2817 .EE
2818 .in
2819 .\" FIXME 2.6.13 seems to have /proc/vmcore implemented; document this
2820 .\" See Documentation/kdump/kdump.txt
2821 .\" commit 666bfddbe8b8fd4fd44617d6c55193d5ac7edb29
2822 .\" Needs CONFIG_VMCORE
2823 .\"
2824 .TP
2825 .IR /proc/vmstat " (since Linux 2.6.0)"
2826 This file displays various virtual memory statistics.
2827 Each line of this file contains a single name-value pair,
2828 delimited by white space.
2829 Some lines are present only if the kernel was configured with
2830 suitable options.
2831 (In some cases, the options required for particular files have changed
2832 across kernel versions, so they are not listed here.
2833 Details can be found by consulting the kernel source code.)
2834 The following fields may be present:
2835 .\" FIXME We need explanations for each of the following fields...
2836 .RS
2837 .TP
2838 .IR nr_free_pages " (since Linux 2.6.31)"
2839 .\" commit d23ad42324cc4378132e51f2fc5c9ba6cbe75182
2840 .TP
2841 .IR nr_alloc_batch " (since Linux 3.12)"
2842 .\" commit 81c0a2bb515fd4daae8cab64352877480792b515
2843 .TP
2844 .IR nr_inactive_anon " (since Linux 2.6.28)"
2845 .\" commit 4f98a2fee8acdb4ac84545df98cccecfd130f8db
2846 .TP
2847 .IR nr_active_anon " (since Linux 2.6.28)"
2848 .\" commit 4f98a2fee8acdb4ac84545df98cccecfd130f8db
2849 .TP
2850 .IR nr_inactive_file " (since Linux 2.6.28)"
2851 .\" commit 4f98a2fee8acdb4ac84545df98cccecfd130f8db
2852 .TP
2853 .IR nr_active_file " (since Linux 2.6.28)"
2854 .\" commit 4f98a2fee8acdb4ac84545df98cccecfd130f8db
2855 .TP
2856 .IR nr_unevictable " (since Linux 2.6.28)"
2857 .\" commit 7b854121eb3e5ba0241882ff939e2c485228c9c5
2858 .TP
2859 .IR nr_mlock " (since Linux 2.6.28)"
2860 .\" commit 5344b7e648980cc2ca613ec03a56a8222ff48820
2861 .TP
2862 .IR nr_anon_pages " (since Linux 2.6.18)"
2863 .\" commit f3dbd34460ff54962d3e3244b6bcb7f5295356e6
2864 .TP
2865 .IR nr_mapped " (since Linux 2.6.0)"
2866 .TP
2867 .IR nr_file_pages " (since Linux 2.6.18)"
2868 .\" commit 347ce434d57da80fd5809c0c836f206a50999c26
2869 .TP
2870 .IR nr_dirty " (since Linux 2.6.0)"
2871 .TP
2872 .IR nr_writeback " (since Linux 2.6.0)"
2873 .TP
2874 .IR nr_slab_reclaimable " (since Linux 2.6.19)"
2875 .\" commit 972d1a7b140569084439a81265a0f15b74e924e0
2876 .\" Linux 2.6.0 had nr_slab
2877 .TP
2878 .IR nr_slab_unreclaimable " (since Linux 2.6.19)"
2879 .\" commit 972d1a7b140569084439a81265a0f15b74e924e0
2880 .TP
2881 .IR nr_page_table_pages " (since Linux 2.6.0)"
2882 .TP
2883 .IR nr_kernel_stack " (since Linux 2.6.32)"
2884 .\" commit c6a7f5728a1db45d30df55a01adc130b4ab0327c
2885 Amount of memory allocated to kernel stacks.
2886 .TP
2887 .IR nr_unstable " (since Linux 2.6.0)"
2888 .TP
2889 .IR nr_bounce " (since Linux 2.6.12)"
2890 .\" commit edfbe2b0038723e5699ab22695ccd62b5542a5c1
2891 .TP
2892 .IR nr_vmscan_write " (since Linux 2.6.19)"
2893 .\" commit e129b5c23c2b471d47f1c5d2b8b193fc2034af43
2894 .TP
2895 .IR nr_vmscan_immediate_reclaim " (since Linux 3.2)"
2896 .\" commit 49ea7eb65e7c5060807fb9312b1ad4c3eab82e2c
2897 .TP
2898 .IR nr_writeback_temp " (since Linux 2.6.26)"
2899 .\" commit fc3ba692a4d19019387c5acaea63131f9eab05dd
2900 .TP
2901 .IR nr_isolated_anon " (since Linux 2.6.32)"
2902 .\" commit a731286de62294b63d8ceb3c5914ac52cc17e690
2903 .TP
2904 .IR nr_isolated_file " (since Linux 2.6.32)"
2905 .\" commit a731286de62294b63d8ceb3c5914ac52cc17e690
2906 .TP
2907 .IR nr_shmem " (since Linux 2.6.32)"
2908 .\" commit 4b02108ac1b3354a22b0d83c684797692efdc395
2909 Pages used by shmem and
2910 .BR tmpfs (5).
2911 .TP
2912 .IR nr_dirtied " (since Linux 2.6.37)"
2913 .\" commit ea941f0e2a8c02ae876cd73deb4e1557248f258c
2914 .TP
2915 .IR nr_written " (since Linux 2.6.37)"
2916 .\" commit ea941f0e2a8c02ae876cd73deb4e1557248f258c
2917 .TP
2918 .IR nr_pages_scanned " (since Linux 3.17)"
2919 .\" commit 0d5d823ab4e608ec7b52ac4410de4cb74bbe0edd
2920 .TP
2921 .IR numa_hit " (since Linux 2.6.18)"
2922 .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5
2923 .\" Present only if the kernel was configured with
2924 .\" .BR CONFIG_NUMA .
2925 .TP
2926 .IR numa_miss " (since Linux 2.6.18)"
2927 .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5
2928 .\" Present only if the kernel was configured with
2929 .\" .BR CONFIG_NUMA .
2930 .TP
2931 .IR numa_foreign " (since Linux 2.6.18)"
2932 .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5
2933 .\" Present only if the kernel was configured with
2934 .\" .BR CONFIG_NUMA .
2935 .TP
2936 .IR numa_interleave " (since Linux 2.6.18)"
2937 .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5
2938 .\" Present only if the kernel was configured with
2939 .\" .BR CONFIG_NUMA .
2940 .TP
2941 .IR numa_local " (since Linux 2.6.18)"
2942 .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5
2943 .\" Present only if the kernel was configured with
2944 .\" .BR CONFIG_NUMA .
2945 .TP
2946 .IR numa_other " (since Linux 2.6.18)"
2947 .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5
2948 .\" Present only if the kernel was configured with
2949 .\" .BR CONFIG_NUMA .
2950 .TP
2951 .IR workingset_refault " (since Linux 3.15)"
2952 .\" commit a528910e12ec7ee203095eb1711468a66b9b60b0
2953 .\" Present only if the kernel was configured with
2954 .\" .BR CONFIG_VM_EVENT_COUNTERS .
2955 .TP
2956 .IR workingset_activate " (since Linux 3.15)"
2957 .\" commit a528910e12ec7ee203095eb1711468a66b9b60b0
2958 .\" Present only if the kernel was configured with
2959 .\" .BR CONFIG_VM_EVENT_COUNTERS .
2960 .TP
2961 .IR workingset_nodereclaim " (since Linux 3.15)"
2962 .\" commit 449dd6984d0e47643c04c807f609dd56d48d5bcc
2963 .\" Present only if the kernel was configured with
2964 .\" .BR CONFIG_VM_EVENT_COUNTERS .
2965 .TP
2966 .IR nr_anon_transparent_hugepages " (since Linux 2.6.38)"
2967 .\" Present only if the kernel was configured with
2968 .\" .BR CONFIG_VM_EVENT_COUNTERS .
2969 .TP
2970 .IR nr_free_cma " (since Linux 3.7)"
2971 .\" commit d1ce749a0db12202b711d1aba1d29e823034648d
2972 Number of free CMA (Contiguous Memory Allocator) pages.
2973 .\" Present only if the kernel was configured with
2974 .\" .BR CONFIG_VM_EVENT_COUNTERS .
2975 .TP
2976 .IR nr_dirty_threshold " (since Linux 2.6.37)"
2977 .\" commit 79da826aee6a10902ef411bc65864bd02102fa83
2978 .\" Present only if the kernel was configured with
2979 .\" .BR CONFIG_VM_EVENT_COUNTERS .
2980 .TP
2981 .IR nr_dirty_background_threshold " (since Linux 2.6.37)"
2982 .\" commit 79da826aee6a10902ef411bc65864bd02102fa83
2983 .\" Present only if the kernel was configured with
2984 .\" .BR CONFIG_VM_EVENT_COUNTERS .
2985 .TP
2986 .IR pgpgin " (since Linux 2.6.0)"
2987 .\" Present only if the kernel was configured with
2988 .\" .BR CONFIG_VM_EVENT_COUNTERS .
2989 .TP
2990 .IR pgpgout " (since Linux 2.6.0)"
2991 .\" Present only if the kernel was configured with
2992 .\" .BR CONFIG_VM_EVENT_COUNTERS .
2993 .TP
2994 .IR pswpin " (since Linux 2.6.0)"
2995 .\" Present only if the kernel was configured with
2996 .\" .BR CONFIG_VM_EVENT_COUNTERS .
2997 .TP
2998 .IR pswpout " (since Linux 2.6.0)"
2999 .\" Present only if the kernel was configured with
3000 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3001 .TP
3002 .IR pgalloc_dma " (since Linux 2.6.5)"
3003 .\" Linux 2.6.0 had pgalloc
3004 .\" Present only if the kernel was configured with
3005 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3006 .TP
3007 .IR pgalloc_dma32 " (since Linux 2.6.16)"
3008 .\" commit 9328b8faae922e52073785ed6c1eaa8565648a0e
3009 .\" Present only if the kernel was configured with
3010 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3011 .TP
3012 .IR pgalloc_normal " (since Linux 2.6.5)"
3013 .\" Present only if the kernel was configured with
3014 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3015 .TP
3016 .IR pgalloc_high " (since Linux 2.6.5)"
3017 .\" Present only if the kernel was configured with
3018 .\" .BR CONFIG_VM_EVENT_COUNTERS
3019 .\" and
3020 .\" .BR CONFIG_HIGHMEM .
3021 .TP
3022 .IR pgalloc_movable " (since Linux 2.6.23)"
3023 .\" commit 2a1e274acf0b1c192face19a4be7c12d4503eaaf
3024 .\" Present only if the kernel was configured with
3025 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3026 .TP
3027 .IR pgfree " (since Linux 2.6.0)"
3028 .\" Present only if the kernel was configured with
3029 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3030 .TP
3031 .IR pgactivate " (since Linux 2.6.0)"
3032 .\" Present only if the kernel was configured with
3033 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3034 .TP
3035 .IR pgdeactivate " (since Linux 2.6.0)"
3036 .\" Present only if the kernel was configured with
3037 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3038 .TP
3039 .IR pgfault " (since Linux 2.6.0)"
3040 .\" Present only if the kernel was configured with
3041 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3042 .TP
3043 .IR pgmajfault " (since Linux 2.6.0)"
3044 .\" Present only if the kernel was configured with
3045 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3046 .TP
3047 .IR pgrefill_dma " (since Linux 2.6.5)"
3048 .\" Linux 2.6.0 had pgrefill
3049 .\" Present only if the kernel was configured with
3050 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3051 .TP
3052 .IR pgrefill_dma32 " (since Linux 2.6.16)"
3053 .\" commit 9328b8faae922e52073785ed6c1eaa8565648a0e
3054 .\" Present only if the kernel was configured with
3055 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3056 .TP
3057 .IR pgrefill_normal " (since Linux 2.6.5)"
3058 .\" Present only if the kernel was configured with
3059 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3060 .TP
3061 .IR pgrefill_high " (since Linux 2.6.5)"
3062 .\" Present only if the kernel was configured with
3063 .\" .BR CONFIG_VM_EVENT_COUNTERS
3064 .\" and
3065 .\" .BR CONFIG_HIGHMEM .
3066 .TP
3067 .IR pgrefill_movable " (since Linux 2.6.23)"
3068 .\" commit 2a1e274acf0b1c192face19a4be7c12d4503eaaf
3069 .\" Present only if the kernel was configured with
3070 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3071 .\" Formerly there were
3072 .\" pgsteal_high
3073 .\" pgsteal_normal
3074 .\" pgsteal_dma32
3075 .\" pgsteal_dma
3076 .\" These were split out into pgsteal_kswapd* and pgsteal_direct*
3077 .\" in commit 904249aa68010c8e223263c922fcbb840a3f42e4
3078 .TP
3079 .IR pgsteal_kswapd_dma " (since Linux 3.4)"
3080 .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4
3081 .\" Linux 2.6.0 had pgsteal
3082 .\" Present only if the kernel was configured with
3083 .\" .\" .BR CONFIG_VM_EVENT_COUNTERS .
3084 .TP
3085 .IR pgsteal_kswapd_dma32 " (since Linux 3.4)"
3086 .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4
3087 .\" commit 9328b8faae922e52073785ed6c1eaa8565648a0e
3088 .\" Present only if the kernel was configured with
3089 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3090 .TP
3091 .IR pgsteal_kswapd_normal " (since Linux 3.4)"
3092 .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4
3093 .\" Present only if the kernel was configured with
3094 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3095 .TP
3096 .IR pgsteal_kswapd_high " (since Linux 3.4)"
3097 .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4
3098 .\" Present only if the kernel was configured with
3099 .\" .BR CONFIG_VM_EVENT_COUNTERS
3100 .\" and
3101 .\" .BR CONFIG_HIGHMEM .
3102 .TP
3103 .IR pgsteal_kswapd_movable " (since Linux 3.4)"
3104 .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4
3105 .\" Present only if the kernel was configured with
3106 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3107 .TP
3108 .I pgsteal_direct_dma
3109 .\" Present only if the kernel was configured with
3110 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3111 .TP
3112 .IR pgsteal_direct_dma32 " (since Linux 3.4)"
3113 .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4
3114 .\" Present only if the kernel was configured with
3115 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3116 .TP
3117 .IR pgsteal_direct_normal " (since Linux 3.4)"
3118 .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4
3119 .\" Present only if the kernel was configured with
3120 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3121 .TP
3122 .IR pgsteal_direct_high " (since Linux 3.4)"
3123 .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4
3124 .\" Present only if the kernel was configured with
3125 .\" .BR CONFIG_VM_EVENT_COUNTERS
3126 .\" and
3127 .\" .BR CONFIG_HIGHMEM .
3128 .TP
3129 .IR pgsteal_direct_movable " (since Linux 2.6.23)"
3130 .\" commit 2a1e274acf0b1c192face19a4be7c12d4503eaaf
3131 .\" Present only if the kernel was configured with
3132 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3133 .TP
3134 .I pgscan_kswapd_dma
3135 .\" Linux 2.6.0 had pgscan
3136 .\" Present only if the kernel was configured with
3137 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3138 .TP
3139 .IR pgscan_kswapd_dma32 " (since Linux 2.6.16)"
3140 .\" commit 9328b8faae922e52073785ed6c1eaa8565648a0e
3141 .\" Present only if the kernel was configured with
3142 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3143 .TP
3144 .IR pgscan_kswapd_normal " (since Linux 2.6.5)"
3145 .\" Present only if the kernel was configured with
3146 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3147 .TP
3148 .I pgscan_kswapd_high
3149 .\" Present only if the kernel was configured with
3150 .\" .BR CONFIG_VM_EVENT_COUNTERS
3151 .\" and
3152 .\" .BR CONFIG_HIGHMEM .
3153 .TP
3154 .IR pgscan_kswapd_movable " (since Linux 2.6.23)"
3155 .\" commit 2a1e274acf0b1c192face19a4be7c12d4503eaaf
3156 .\" Present only if the kernel was configured with
3157 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3158 .TP
3159 .I pgscan_direct_dma
3160 .\" Present only if the kernel was configured with
3161 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3162 .TP
3163 .IR pgscan_direct_dma32 " (since Linux 2.6.16)"
3164 .\" commit 9328b8faae922e52073785ed6c1eaa8565648a0e
3165 .\" Present only if the kernel was configured with
3166 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3167 .TP
3168 .I pgscan_direct_normal
3169 .\" Present only if the kernel was configured with
3170 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3171 .TP
3172 .I pgscan_direct_high
3173 .\" Present only if the kernel was configured with
3174 .\" .BR CONFIG_VM_EVENT_COUNTERS
3175 .\" and
3176 .\" .BR CONFIG_HIGHMEM .
3177 .TP
3178 .IR pgscan_direct_movable " (since Linux 2.6.23)"
3179 .\" commit 2a1e274acf0b1c192face19a4be7c12d4503eaaf
3180 .\" Present only if the kernel was configured with
3181 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3182 .TP
3183 .IR pgscan_direct_throttle " (since Linux 3.6)"
3184 .\" commit 68243e76ee343d63c6cf76978588a885951e2818
3185 .\" Present only if the kernel was configured with
3186 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3187 .TP
3188 .IR zone_reclaim_failed " (since linux 2.6.31)"
3189 .\" commit 24cf72518c79cdcda486ed26074ff8151291cf65
3190 .\" Present only if the kernel was configured with
3191 .\" .BR CONFIG_VM_EVENT_COUNTERS
3192 .\" and
3193 .\" .BR CONFIG_NUMA .
3194 .TP
3195 .IR pginodesteal " (since linux 2.6.0)"
3196 .\" Present only if the kernel was configured with
3197 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3198 .TP
3199 .IR slabs_scanned " (since linux 2.6.5)"
3200 .\" Present only if the kernel was configured with
3201 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3202 .TP
3203 .IR kswapd_inodesteal " (since linux 2.6.0)"
3204 .\" Present only if the kernel was configured with
3205 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3206 .TP
3207 .IR kswapd_low_wmark_hit_quickly " (since Linux 2.6.33)"
3208 .\" commit bb3ab596832b920c703d1aea1ce76d69c0f71fb7
3209 .\" Present only if the kernel was configured with
3210 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3211 .TP
3212 .IR kswapd_high_wmark_hit_quickly " (since Linux 2.6.33)"
3213 .\" commit bb3ab596832b920c703d1aea1ce76d69c0f71fb7
3214 .\" Present only if the kernel was configured with
3215 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3216 .TP
3217 .IR pageoutrun " (since Linux 2.6.0)"
3218 .\" Present only if the kernel was configured with
3219 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3220 .TP
3221 .IR allocstall " (since Linux 2.6.0)"
3222 .\" Present only if the kernel was configured with
3223 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3224 .TP
3225 .IR pgrotated " (since Linux 2.6.0)"
3226 .\" Present only if the kernel was configured with
3227 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3228 .TP
3229 .IR drop_pagecache " (since Linux 3.15)"
3230 .\" commit 5509a5d27b971a90b940e148ca9ca53312e4fa7a
3231 .\" Present only if the kernel was configured with
3232 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3233 .TP
3234 .IR drop_slab " (since Linux 3.15)"
3235 .\" commit 5509a5d27b971a90b940e148ca9ca53312e4fa7a
3236 .\" Present only if the kernel was configured with
3237 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3238 .TP
3239 .IR numa_pte_updates " (since Linux 3.8)"
3240 .\" commit 03c5a6e16322c997bf8f264851bfa3f532ad515f
3241 .\" Present only if the kernel was configured with
3242 .\" .BR CONFIG_VM_EVENT_COUNTERS
3243 .\" and
3244 .\" .BR CONFIG_NUMA_BALANCING .
3245 .TP
3246 .IR numa_huge_pte_updates " (since Linux 3.13)"
3247 .\" commit 72403b4a0fbdf433c1fe0127e49864658f6f6468
3248 .\" Present only if the kernel was configured with
3249 .\" .BR CONFIG_VM_EVENT_COUNTERS
3250 .\" and
3251 .\" .BR CONFIG_NUMA_BALANCING .
3252 .TP
3253 .IR numa_hint_faults " (since Linux 3.8)"
3254 .\" commit 03c5a6e16322c997bf8f264851bfa3f532ad515f
3255 .\" Present only if the kernel was configured with
3256 .\" .BR CONFIG_VM_EVENT_COUNTERS
3257 .\" and
3258 .\" .BR CONFIG_NUMA_BALANCING .
3259 .TP
3260 .IR numa_hint_faults_local " (since Linux 3.8)"
3261 .\" commit 03c5a6e16322c997bf8f264851bfa3f532ad515f
3262 .\" Present only if the kernel was configured with
3263 .\" .BR CONFIG_VM_EVENT_COUNTERS
3264 .\" and
3265 .\" .BR CONFIG_NUMA_BALANCING .
3266 .TP
3267 .IR numa_pages_migrated " (since Linux 3.8)"
3268 .\" commit 03c5a6e16322c997bf8f264851bfa3f532ad515f
3269 .\" Present only if the kernel was configured with
3270 .\" .BR CONFIG_VM_EVENT_COUNTERS
3271 .\" and
3272 .\" .BR CONFIG_NUMA_BALANCING
3273 .\" and
3274 .\" .BR CONFIG_NUMA_BALANCING .
3275 .TP
3276 .IR pgmigrate_success " (since Linux 3.8)"
3277 .\" commit 5647bc293ab15f66a7b1cda850c5e9d162a6c7c2
3278 .\" Present only if the kernel was configured with
3279 .\" .BR CONFIG_VM_EVENT_COUNTERS
3280 .\" and
3281 .\" .BR CONFIG_MIGRATION .
3282 .TP
3283 .IR pgmigrate_fail " (since Linux 3.8)"
3284 .\" commit 5647bc293ab15f66a7b1cda850c5e9d162a6c7c2
3285 .\" Present only if the kernel was configured with
3286 .\" .BR CONFIG_VM_EVENT_COUNTERS
3287 .\" and
3288 .\" .BR CONFIG_MIGRATION .
3289 .TP
3290 .IR compact_migrate_scanned " (since Linux 3.8)"
3291 .\" commit 397487db696cae0b026a474a5cd66f4e372995e6
3292 .\" Linux 3.8 dropped compact_blocks_moved, compact_pages_moved, and
3293 .\" compact_pagemigrate_failed
3294 .\" Present only if the kernel was configured with
3295 .\" .BR CONFIG_VM_EVENT_COUNTERS
3296 .\" and
3297 .\" .BR CONFIG_COMPACTION .
3298 .TP
3299 .IR compact_free_scanned " (since Linux 3.8)"
3300 .\" commit 397487db696cae0b026a474a5cd66f4e372995e6
3301 .\" Present only if the kernel was configured with
3302 .\" .BR CONFIG_VM_EVENT_COUNTERS
3303 .\" and
3304 .\" .BR CONFIG_COMPACTION .
3305 .TP
3306 .IR compact_isolated " (since Linux 3.8)"
3307 .\" commit 397487db696cae0b026a474a5cd66f4e372995e6
3308 .\" Present only if the kernel was configured with
3309 .\" .BR CONFIG_VM_EVENT_COUNTERS
3310 .\" and
3311 .\" .BR CONFIG_COMPACTION .
3312 .TP
3313 .IR compact_stall " (since Linux 2.6.35)"
3314 .\" commit 56de7263fcf3eb10c8dcdf8d59a9cec831795f3f
3315 See the kernel source file
3316 .IR Documentation/admin\-guide/mm/transhuge.rst .
3317 .\" Present only if the kernel was configured with
3318 .\" .BR CONFIG_VM_EVENT_COUNTERS
3319 .\" and
3320 .\" .BR CONFIG_COMPACTION .
3321 .TP
3322 .IR compact_fail " (since Linux 2.6.35)"
3323 .\" commit 56de7263fcf3eb10c8dcdf8d59a9cec831795f3f
3324 See the kernel source file
3325 .IR Documentation/admin\-guide/mm/transhuge.rst .
3326 .\" Present only if the kernel was configured with
3327 .\" .BR CONFIG_VM_EVENT_COUNTERS
3328 .\" and
3329 .\" .BR CONFIG_COMPACTION .
3330 .TP
3331 .IR compact_success " (since Linux 2.6.35)"
3332 .\" commit 56de7263fcf3eb10c8dcdf8d59a9cec831795f3f
3333 See the kernel source file
3334 .IR Documentation/admin\-guide/mm/transhuge.rst .
3335 .\" Present only if the kernel was configured with
3336 .\" .BR CONFIG_VM_EVENT_COUNTERS
3337 .\" and
3338 .\" .BR CONFIG_COMPACTION .
3339 .TP
3340 .IR htlb_buddy_alloc_success " (since Linux 2.6.26)"
3341 .\" commit 3b1163006332302117b1b2acf226d4014ff46525
3342 .\" Present only if the kernel was configured with
3343 .\" .BR CONFIG_VM_EVENT_COUNTERS
3344 .\" and
3345 .\" .BR CONFIG_HUGETLB_PAGE .
3346 .TP
3347 .IR htlb_buddy_alloc_fail " (since Linux 2.6.26)"
3348 .\" commit 3b1163006332302117b1b2acf226d4014ff46525
3349 .\" Present only if the kernel was configured with
3350 .\" .BR CONFIG_VM_EVENT_COUNTERS
3351 .\" and
3352 .\" .BR CONFIG_HUGETLB_PAGE .
3353 .TP
3354 .IR unevictable_pgs_culled " (since Linux 2.6.28)"
3355 .\" commit bbfd28eee9fbd73e780b19beb3dc562befbb94fa
3356 .\" Present only if the kernel was configured with
3357 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3358 .TP
3359 .IR unevictable_pgs_scanned " (since Linux 2.6.28)"
3360 .\" commit bbfd28eee9fbd73e780b19beb3dc562befbb94fa
3361 .\" Present only if the kernel was configured with
3362 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3363 .TP
3364 .IR unevictable_pgs_rescued " (since Linux 2.6.28)"
3365 .\" commit bbfd28eee9fbd73e780b19beb3dc562befbb94fa
3366 .\" Present only if the kernel was configured with
3367 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3368 .TP
3369 .IR unevictable_pgs_mlocked " (since Linux 2.6.28)"
3370 .\" commit 5344b7e648980cc2ca613ec03a56a8222ff48820
3371 .\" Present only if the kernel was configured with
3372 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3373 .TP
3374 .IR unevictable_pgs_munlocked " (since Linux 2.6.28)"
3375 .\" commit 5344b7e648980cc2ca613ec03a56a8222ff48820
3376 .\" Present only if the kernel was configured with
3377 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3378 .TP
3379 .IR unevictable_pgs_cleared " (since Linux 2.6.28)"
3380 .\" commit 5344b7e648980cc2ca613ec03a56a8222ff48820
3381 .\" Present only if the kernel was configured with
3382 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3383 .TP
3384 .IR unevictable_pgs_stranded " (since Linux 2.6.28)"
3385 .\" commit 5344b7e648980cc2ca613ec03a56a8222ff48820
3386 .\" Present only if the kernel was configured with
3387 .\" .BR CONFIG_VM_EVENT_COUNTERS .
3388 .\" Linux 3.7 removed unevictable_pgs_mlockfreed
3389 .TP
3390 .IR thp_fault_alloc " (since Linux 2.6.39)"
3391 .\" commit 81ab4201fb7d91d6b0cd9ad5b4b16776e4bed145
3392 See the kernel source file
3393 .IR Documentation/admin\-guide/mm/transhuge.rst .
3394 .\" Present only if the kernel was configured with
3395 .\" .BR CONFIG_VM_EVENT_COUNTERS
3396 .\" and
3397 .\" .BR CONFIG_TRANSPARENT_HUGEPAGE .
3398 .TP
3399 .IR thp_fault_fallback " (since Linux 2.6.39)"
3400 .\" commit 81ab4201fb7d91d6b0cd9ad5b4b16776e4bed145
3401 See the kernel source file
3402 .IR Documentation/admin\-guide/mm/transhuge.rst .
3403 .\" Present only if the kernel was configured with
3404 .\" .BR CONFIG_VM_EVENT_COUNTERS
3405 .\" and
3406 .\" .BR CONFIG_TRANSPARENT_HUGEPAGE .
3407 .TP
3408 .IR thp_collapse_alloc " (since Linux 2.6.39)"
3409 .\" commit 81ab4201fb7d91d6b0cd9ad5b4b16776e4bed145
3410 See the kernel source file
3411 .IR Documentation/admin\-guide/mm/transhuge.rst .
3412 .\" Present only if the kernel was configured with
3413 .\" .BR CONFIG_VM_EVENT_COUNTERS
3414 .\" and
3415 .\" .BR CONFIG_TRANSPARENT_HUGEPAGE .
3416 .TP
3417 .IR thp_collapse_alloc_failed " (since Linux 2.6.39)"
3418 .\" commit 81ab4201fb7d91d6b0cd9ad5b4b16776e4bed145
3419 See the kernel source file
3420 .IR Documentation/admin\-guide/mm/transhuge.rst .
3421 .\" Present only if the kernel was configured with
3422 .\" .BR CONFIG_VM_EVENT_COUNTERS
3423 .\" and
3424 .\" .BR CONFIG_TRANSPARENT_HUGEPAGE .
3425 .TP
3426 .IR thp_split " (since Linux 2.6.39)"
3427 .\" commit 81ab4201fb7d91d6b0cd9ad5b4b16776e4bed145
3428 See the kernel source file
3429 .IR Documentation/admin\-guide/mm/transhuge.rst .
3430 .\" Present only if the kernel was configured with
3431 .\" .BR CONFIG_VM_EVENT_COUNTERS
3432 .\" and
3433 .\" .BR CONFIG_TRANSPARENT_HUGEPAGE .
3434 .TP
3435 .IR thp_zero_page_alloc " (since Linux 3.8)"
3436 .\" commit d8a8e1f0da3d29d7268b3300c96a059d63901b76
3437 See the kernel source file
3438 .IR Documentation/admin\-guide/mm/transhuge.rst .
3439 .\" Present only if the kernel was configured with
3440 .\" .BR CONFIG_VM_EVENT_COUNTERS
3441 .\" and
3442 .\" .BR CONFIG_TRANSPARENT_HUGEPAGE .
3443 .TP
3444 .IR thp_zero_page_alloc_failed " (since Linux 3.8)"
3445 .\" commit d8a8e1f0da3d29d7268b3300c96a059d63901b76
3446 See the kernel source file
3447 .IR Documentation/admin\-guide/mm/transhuge.rst .
3448 .\" Present only if the kernel was configured with
3449 .\" .BR CONFIG_VM_EVENT_COUNTERS
3450 .\" and
3451 .\" .BR CONFIG_TRANSPARENT_HUGEPAGE .
3452 .TP
3453 .IR balloon_inflate " (since Linux 3.18)"
3454 .\" commit 09316c09dde33aae14f34489d9e3d243ec0d5938
3455 .\" Present only if the kernel was configured with
3456 .\" .BR CONFIG_VM_EVENT_COUNTERS
3457 .\" and
3458 .\" .BR CONFIG_MEMORY_BALLOON .
3459 .TP
3460 .IR balloon_deflate " (since Linux 3.18)"
3461 .\" commit 09316c09dde33aae14f34489d9e3d243ec0d5938
3462 .\" Present only if the kernel was configured with
3463 .\" .BR CONFIG_VM_EVENT_COUNTERS
3464 .\" and
3465 .\" .BR CONFIG_MEMORY_BALLOON .
3466 .TP
3467 .IR balloon_migrate " (since Linux 3.18)"
3468 .\" commit 09316c09dde33aae14f34489d9e3d243ec0d5938
3469 .\" Present only if the kernel was configured with
3470 .\" .BR CONFIG_VM_EVENT_COUNTERS ,
3471 .\" .BR CONFIG_MEMORY_BALLOON ,
3472 .\" and
3473 .\" .BR CONFIG_BALLOON_COMPACTION .
3474 .TP
3475 .IR nr_tlb_remote_flush " (since Linux 3.12)"
3476 .\" commit 9824cf9753ecbe8f5b47aa9b2f218207defea211
3477 .\" Present only if the kernel was configured with
3478 .\" .BR CONFIG_DEBUG_TLBFLUSH
3479 .\" and
3480 .\" .BR CONFIG_SMP .
3481 .TP
3482 .IR nr_tlb_remote_flush_received " (since Linux 3.12)"
3483 .\" commit 9824cf9753ecbe8f5b47aa9b2f218207defea211
3484 .\" Present only if the kernel was configured with
3485 .\" .BR CONFIG_DEBUG_TLBFLUSH
3486 .\" and
3487 .\" .BR CONFIG_SMP .
3488 .TP
3489 .IR nr_tlb_local_flush_all " (since Linux 3.12)"
3490 .\" commit 9824cf9753ecbe8f5b47aa9b2f218207defea211
3491 .\" Present only if the kernel was configured with
3492 .\" .BR CONFIG_DEBUG_TLBFLUSH .
3493 .TP
3494 .IR nr_tlb_local_flush_one " (since Linux 3.12)"
3495 .\" commit 9824cf9753ecbe8f5b47aa9b2f218207defea211
3496 .\" Present only if the kernel was configured with
3497 .\" .BR CONFIG_DEBUG_TLBFLUSH .
3498 .TP
3499 .IR vmacache_find_calls " (since Linux 3.16)"
3500 .\" commit 4f115147ff802267d0aa41e361c5aa5bd933d896
3501 .\" Present only if the kernel was configured with
3502 .\" .BR CONFIG_DEBUG_VM_VMACACHE .
3503 .TP
3504 .IR vmacache_find_hits " (since Linux 3.16)"
3505 .\" commit 4f115147ff802267d0aa41e361c5aa5bd933d896
3506 .\" Present only if the kernel was configured with
3507 .\" .BR CONFIG_DEBUG_VM_VMACACHE .
3508 .TP
3509 .IR vmacache_full_flushes " (since Linux 3.19)"
3510 .\" commit f5f302e21257ebb0c074bbafc37606c26d28cc3d
3511 .\" Present only if the kernel was configured with
3512 .\" .BR CONFIG_DEBUG_VM_VMACACHE .
3513 .RE
3514 .TP
3515 .IR /proc/zoneinfo " (since Linux 2.6.13)"
3516 This file displays information about memory zones.
3517 This is useful for analyzing virtual memory behavior.
3518 .\" FIXME more should be said about /proc/zoneinfo
3519 .SH NOTES
3520 Many files contain strings (e.g., the environment and command line)
3521 that are in the internal format,
3522 with subfields terminated by null bytes (\[aq]\e0\[aq]).
3523 When inspecting such files, you may find that the results are more readable
3524 if you use a command of the following form to display them:
3525 .PP
3526 .in +4n
3527 .EX
3528 .RB "$" " cat \fIfile\fP | tr \[aq]\e000\[aq] \[aq]\en\[aq]"
3529 .EE
3530 .in
3531 .PP
3532 This manual page is incomplete, possibly inaccurate, and is the kind
3533 of thing that needs to be updated very often.
3534 .\" .SH ACKNOWLEDGEMENTS
3535 .\" The material on /proc/sys/fs and /proc/sys/kernel is closely based on
3536 .\" kernel source documentation files written by Rik van Riel.
3537 .SH SEE ALSO
3538 .BR cat (1),
3539 .BR dmesg (1),
3540 .BR find (1),
3541 .BR free (1),
3542 .BR htop (1),
3543 .BR init (1),
3544 .BR ps (1),
3545 .BR pstree (1),
3546 .BR tr (1),
3547 .BR uptime (1),
3548 .BR chroot (2),
3549 .BR mmap (2),
3550 .BR readlink (2),
3551 .BR syslog (2),
3552 .BR slabinfo (5),
3553 .BR sysfs (5),
3554 .BR hier (7),
3555 .BR namespaces (7),
3556 .BR time (7),
3557 .BR arp (8),
3558 .BR hdparm (8),
3559 .BR ifconfig (8),
3560 .BR lsmod (8),
3561 .BR lspci (8),
3562 .BR mount (8),
3563 .BR netstat (8),
3564 .BR procinfo (8),
3565 .BR route (8),
3566 .BR sysctl (8)
3567 .PP
3568 The Linux kernel source files:
3569 .IR Documentation/filesystems/proc.rst ,
3570 .IR Documentation/admin\-guide/sysctl/fs.rst ,
3571 .IR Documentation/admin\-guide/sysctl/kernel.rst ,
3572 .IR Documentation/admin\-guide/sysctl/net.rst ,
3573 and
3574 .IR Documentation/admin\-guide/sysctl/vm.rst .