Lines Matching refs:of

15 Table of Contents
57 This documentation is part of a soon (or so we hope) to be released book on
70 We'd like to thank Alan Cox, Rik van Riel, and Alexey Kuznetsov and a lot of
75 and helped create a great piece of software... :)
81 The latest version of this document is available online at
91 We don't guarantee the correctness of this document, and if you come to us
92 complaining about how you screwed up your system because of incorrect
102 * Investigating the properties of the pseudo file system /proc and its
114 First, we'll take a look at the read-only parts of /proc. In Chapter 2, we
134 environ Values of environment variables
135 exe Link to the executable of this process
139 root Link to the root directory of this process
147 smaps a extension based on maps, showing the memory consumption of
150 binding policy as well as mem usage (in pages) of each mapping.
153 For example, to get the status information of a process, all you have to do is
196 information. But you get a more detailed view of the process by reading the
207 snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table.
210 Table 1-2: Contents of the status files (as of 4.1)
213 Name filename of the executable
220 PPid process id of the parent process
221 TracerPid PID of process tracing this process (0 if not)
224 FDSize number of file descriptor slots currently allocated
234 VmRSS size of memory portions
235 VmData size of data, stack, and text segments
236 VmStk size of data, stack, and text segments
237 VmExe size of text segment
238 VmLib size of shared library code
239 VmPTE size of page table entries
240 VmPMD size of second level page tables
241 VmSwap size of swap usage (the number of referred swapents)
242 HugetlbPages size of hugetlb memory portions
243 Threads number of threads
244 SigQ number of signals queued/max. number for queue
245 SigPnd bitmap of pending signals for the thread
246 ShdPnd bitmap of shared pending signals for the process
247 SigBlk bitmap of blocked signals
248 SigIgn bitmap of ignored signals
249 SigCgt bitmap of caught signals
250 CapInh bitmap of inheritable capabilities
251 CapPrm bitmap of permitted capabilities
252 CapEff bitmap of effective capabilities
253 CapBnd bitmap of capabilities bounding set
255 Cpus_allowed mask of CPUs on which this process may run
257 Mems_allowed mask of memory nodes allowed to this process
259 voluntary_ctxt_switches number of voluntary context switches
260 nonvoluntary_ctxt_switches number of non voluntary context switches
263 Table 1-3: Contents of the statm files (as of 2.6.8-rc3)
267 resident size of memory portions (pages) (same as VmRSS in status)
268 shared number of pages that are shared (i.e. backed by a file)
269 trs number of pages that are 'code' (not including libs; broken,
271 lrs number of pages of library (always 0 on 2.6)
272 drs number of pages of data/stack (including libs; broken,
274 dt number of dirty pages (always 0 on 2.6)
278 Table 1-4: Contents of the stat files (as of 2.6.30-rc7)
282 tcomm filename of the executable
285 ppid process id of the parent process
286 pgrp pgrp of the process
289 tty_pgrp pgrp of the tty
291 min_flt number of minor faults
292 cmin_flt number of minor faults with child's
293 maj_flt number of major faults
294 cmaj_flt number of major faults with child's
301 num_threads number of threads
309 start_stack address of the start of the main process stack
310 esp current value of ESP
311 eip current value of EIP
312 pending bitmap of pending signals
313 blocked bitmap of blocked signals
314 sigign bitmap of ignored signals
315 sigcatch bitmap of caught signals
324 gtime guest time of the task in jiffies
325 cgtime guest time of the task children in jiffies
365 is a set of permissions:
379 [heap] = the heap of the program
380 [stack] = the stack of the main process
381 [stack:1001] = the stack of the thread with tid 1001
387 The /proc/PID/task/TID/maps is a view of the virtual memory from the viewpoint
388 of the individual tasks of a process. In this file you will see a mapping marked
390 content of /proc/PID/maps, where you will see all mappings that are being used
391 as stack by all of those tasks. Hence, for the example above, the task-level
416 consumption for each of the process's mappings. For each of mappings there
417 is a series of lines such as the following:
439 the first of these lines shows the same information as is displayed for the
440 mapping in /proc/PID/maps. The remaining lines show the size of the mapping
441 (size), the amount of the mapping that is currently resident in RAM (RSS), the
442 process' proportional share of this mapping (PSS), the number of clean and
445 The "proportional set size" (PSS) of a process is the count of pages it has
446 in memory, where each page is divided by the number of processes sharing it.
449 Note that even a page which is part of a MAP_SHARED mapping, but has only
452 "Referenced" indicates the amount of memory currently marked as referenced or
454 "Anonymous" shows the amount of memory that does not belong to any file. Even
457 "AnonHugePages" shows the ammount of memory backed by transparent hugepage.
458 "Shared_Hugetlb" and "Private_Hugetlb" show the ammounts of memory backed by
462 "SwapPss" shows proportional swap share of this mapping.
525 using /proc/kpageflags and number of times a page is mapped using
529 locality and binding policy, as well as the memory usage (in pages) of
564 /proc and are listed in Table 1-5. Not all of these will be present in your
592 loadavg Load average of last 1, 5 & 15 minutes
596 modules List of loaded modules
600 partitions Table of partitions known to the system
601 pci Deprecated info of PCI bus (new way -> /proc/bus/pci/,
610 sysvipc Info of SysVIPC Resources (msg, sem, shm) (2.4)
611 tty Info of tty drivers
612 uptime Wall clock since boot, combined idle time of all cpus
614 video bttv info of video resources (2.4)
637 In 2.4.* a couple of lines where added to this file LOC & ERR (this time is the
638 output of a SMP machine):
662 LOC is the local interrupt counter of the internal APIC of every CPU.
664 ERR is incremented in the case of errors in the IO-APIC bus (the bus that
674 (typically counting ECC corrected errors of memory or cache) exceeds
685 of 0xff. This might also be generated by chipset bugs.
688 sent from one CPU to another per the needs of the OS. Typically,
690 determine the occurrence of interrupts of the given type.
694 suppressed when the system is a uniprocessor. As of this writing, only
697 Of some interest is the introduction of the /proc/irq directory to 2.4.
699 IRQ to only one CPU, or to exclude a CPU of handling IRQs. The contents of the
718 The contents of each smp_affinity file is the same by default:
724 a cpu range instead of a bitmask:
738 profiler. Default value is ffffffff (all cpus if there are only 32 of them).
747 The general rule is that the contents, or even the existence of these
770 Each column represents the number of pages of a certain order which are
771 available. In this case, there are 0 chunks of 2^0*PAGE_SIZE available in
772 ZONE_DMA, 4 chunks of 2^1*PAGE_SIZE in ZONE_DMA, 101 chunks of 2^4*PAGE_SIZE
794 Number of blocks type Unmovable Reclaimable Movable Reserve Isolate
798 Fragmentation avoidance in the kernel works by grouping pages of different
799 migrate types into the same contiguous regions of memory called page blocks.
800 A page block is typically the size of the default hugepage size e.g. 2MB on
804 The pagetypinfo begins with information on the size of a page block. It
805 then gives the same type of information as buddyinfo except broken down
806 by migrate-type and finishes with details on how many page blocks of each
811 make an estimate of the likely number of huge pages that can be allocated
813 unless memory has been mlock()'d. Some of the Reclaimable blocks should
814 also be allocatable although a lot of filesystem metadata may have to be
821 Provides information about distribution and utilization of memory. This
823 16GB PIII, which has highmem enabled. You may not have all of these fields.
861 MemFree: The sum of LowFree+HighFree
862 MemAvailable: An estimate of how much memory is available for starting new
864 SReclaimable, the size of the file LRU lists, and the low
869 impact of those factors will vary from system to system.
883 HighFree: Highmem is all memory above ~860MB of physical memory
892 allocated. Bad things happen when you're out of lowmem.
893 SwapTotal: total amount of swap space available
902 SReclaimable: Part of Slab, that might be reclaimed, such as caches
903 SUnreclaim: Part of Slab, that cannot be reclaimed on memory pressure
904 PageTables: amount of memory dedicated to the lowest level of page
911 this is the total amount of memory currently available to
918 For example, on a system with 1G of physical RAM and 7G
919 of swap with a `vm.overcommit_ratio` of 30 it would
920 yield a CommitLimit of 7.3G.
923 Committed_AS: The amount of memory presently allocated on the system.
924 The committed memory is a sum of all of the memory which
926 "used" by them as of yet. A process which malloc()'s 1G
927 of memory, but only touches 300M of it will show up as
934 not fail due to lack of memory once that memory has been
936 VmallocTotal: total size of vmalloc memory area
937 VmallocUsed: amount of vmalloc area which is used
938 VmallocChunk: largest contiguous block of vmalloc area which is free
945 containing the virtual address range of the area, size in bytes,
946 caller information of the creator, and optional information depending
947 on the kind of area :
949 pages=nr number of pages
957 Number of pages allocated on memory node <node>
988 Provides counts of softirq handlers serviced since boot time, for each cpu.
1006 The subdirectory /proc/ide contains information about all IDE devices of which
1019 subdirectories. These are named ide0, ide1 and so on. Each of these
1029 model Type/Chipset of IDE controller
1041 capacity Capacity of the medium (in 512Byte blocks)
1052 The most interesting file is settings. This file contains a nice overview of
1091 if_inet6 List of IPv6 interface addresses
1105 (interface index, label, number of references, number of bound
1125 netlink List of PF_NETLINK sockets
1126 ip_mr_vifs List of multicast virtual interfaces
1127 ip_mr_cache List of multicast routing cache
1149 current slaves of the bond, the link status of the slaves, and how
1157 of all recognized SCSI devices in /proc/scsi:
1171 the used IRQ and the IO address range. The amount of information shown is
1218 The directory /proc/parport contains information about the parallel ports of
1229 devices list of the device drivers using that port. A + will appear by the
1230 name of the device currently using the port (it might not appear
1249 drivers list of drivers and their usage
1251 driver/serial usage statistic and status of single tty lines
1274 Various pieces of information about kernel activity are available in the
1275 /proc/stat file. All of the numbers reported in this file are aggregates
1290 The very first "cpu" line aggregates the numbers in all of the other "cpuN"
1291 lines. These numbers identify the amount of time the CPU has spent performing
1292 different kinds of work. Time units are in USER_HZ (typically hundredths of a
1293 second). The meanings of the columns are as follows, from left to right:
1306 The "intr" line gives counts of interrupts serviced since boot time, for each
1307 of the possible system interrupts. The first column is the total of all
1312 The "ctxt" line gives the total number of context switches across all CPUs.
1317 The "processes" line gives the number of processes and threads created, which
1321 The "procs_running" line gives the total number of threads that are
1322 running or ready to run (i.e., the total number of runnable threads).
1324 The "procs_blocked" line gives the number of processes currently blocked,
1327 The "softirq" line gives counts of softirqs serviced since boot time, for each
1328 of the possible system softirqs. The first column is the total of all
1345 mb_groups details of multiblock allocator buddy cache of free blocks
1361 device name of the device
1371 major:minor major and minor number of the device separated by a colon
1380 The directory structure of /proc reflects the types of information and makes
1393 * Review of the /proc/sys file tree
1397 A very interesting part of /proc is the directory /proc/sys. This is not only
1398 a source of information, it also allows you to change parameters within the
1411 general things in the operation of the Linux kernel. Since some of the files
1414 very careful when writing to any of these files. The entries in /proc may
1418 kernels, and became part of it in version 2.2.1 of the Linux kernel.
1420 Please see: Documentation/sysctl/ directory for descriptions of these
1426 Certain aspects of kernel behavior can be modified at runtime, without the
1430 of the kernel.
1441 process gets killed in out of memory conditions.
1445 units are roughly a proportion along that range of allowed memory the process
1446 may allocate from based on an estimation of its current memory and swap use.
1448 1000. If it is using half of its allowed memory, its score will be 500.
1453 The amount of "allowed" memory depends on the context in which the oom killer
1455 being exhausted, the allowed memory represents the set of mems assigned to that
1457 memory represents the set of mempolicy nodes. If it is due to a memory
1459 limit. Finally, if it is due to the entire system being out of memory, the
1462 The value of /proc/<pid>/oom_score_adj is added to the badness score before it
1468 report a badness score of 0.
1470 Consequently, it is very simple for userspace to define the amount of memory to
1471 consider for each task. Setting a /proc/<pid>/oom_score_adj value of +500, for
1472 example, is roughly equivalent to allowing the remainder of tasks sharing the
1474 50% more memory. A value of -500, on the other hand, would be roughly
1475 equivalent to discounting 50% of the task's allowed memory from being considered
1480 (OOM_ADJUST_MIN) to +15 (OOM_ADJUST_MAX) and a special value of -17
1484 The value of /proc/<pid>/oom_score_adj may be reduced no lower than the last
1491 minimal amount of work.
1499 process should be killed in an out-of-memory situation.
1510 test:/tmp # dd if=/dev/zero of=/tmp/test.dat &
1530 The number of bytes which this task has caused to be read from storage. This
1531 is simply the sum of bytes which this process passed to read() and pread().
1541 The number of bytes which this task has caused, or shall cause to be written
1549 Attempt to count the number of read I/O operations, i.e. syscalls like read()
1557 Attempt to count the number of write I/O operations, i.e. syscalls like
1565 Attempt to count the number of bytes which this process really did cause to
1575 Attempt to count the number of bytes which this process caused to be sent to
1584 been accounted as having caused 1MB of write.
1585 In other words: The number of bytes which this process caused to not happen,
1597 process A reads process B's /proc/pid/io while process B is updating one of
1607 long as the size of the core file isn't limited. But sometimes we don't want
1614 of memory types. If a bit of the bitmask is set, memory segments of the
1630 are always dumped regardless of the bitmask status.
1635 The default value of coredump_filter is 0x33; this means all anonymous memory
1653 This file contains lines of the form:
1658 (1) mount ID: unique identifier of the mount (may be reused after umount)
1659 (2) parent ID: ID of parent (or of self for the top of the mount tree)
1660 (3) major:minor: value of st_dev for files on filesystem
1661 (4) root: root of the mount within the filesystem
1664 (7) optional fields: zero or more fields of the form "tag[:value]"
1665 (8) separator: marks the end of the optional fields
1666 (9) filesystem type: name of filesystem of the form "type[.subtype]"
1679 X is the immediate master of the mount, or if there's no dominant peer
1691 a task to set its own or one of its thread siblings comm value. The comm value
1700 of a task pointed by <pid>/<tid> pair. The format is a space separated
1701 stream of pids.
1718 represents the current offset of the opened file in decimal form [see lseek(2)
1720 created with [see open(2) for details] and 'mnt_id' represents mount ID of
1744 where 'eventfd-count' is hex value of a counter.
1753 where 'sigmask' is hex value of the signal mask associated
1777 target file resides and the 'mask' is the mask of events, all in hex
1800 call, 'mnt_id' is the mount point identifier, 'mflags' is the value of
1803 mask and 'ignored_mask' is the mask of events which are to be ignored.
1804 All in hex format. Incorporation of 'mflags', 'mask' and 'ignored_mask'
1823 where 'clockid' is the clock type and 'ticks' is the number of the timer expirations
1843 The name of a link represents the virtual memory bounds of a mapping, i.e.
1846 The main purpose of the map_files is to retrieve a set of memory mapped
1847 files in a fast way instead of parsing /proc/<pid>/maps or
1848 /proc/<pid>/smaps, both of which contain many more records. At the same
1849 time one can open(2) mappings from the listings of two processes and
1880 /proc/<pid>/ otherwise. It greatly complicates an intruder's task of gathering