[deployment-guide/comm-rel: 24/74] DG.xml, proc_fs: re-add the proc FS chapter from SAG

dsilas dsilas at fedoraproject.org
Tue Jul 6 21:11:11 UTC 2010


commit 51db08b3d0d0da3cce35d2a8a226e1b55385083e
Author: Douglas Silas <dhensley at redhat.com>
Date:   Thu Jun 24 12:37:03 2010 +0200

    DG.xml, proc_fs: re-add the proc FS chapter from SAG
    
    Fix BZ#594697: ddomingo and I decided the best place for this chapter is the DG instead of the SAG; therefore, re-adding. Note: chapter is fully updated and has SME sign-off.

 en-US/Deployment_Guide.xml     |    4 +
 en-US/The_proc_File_System.xml | 5236 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 5240 insertions(+), 0 deletions(-)
---
diff --git a/en-US/Deployment_Guide.xml b/en-US/Deployment_Guide.xml
index 5c4b980..088e3f4 100644
--- a/en-US/Deployment_Guide.xml
+++ b/en-US/Deployment_Guide.xml
@@ -100,6 +100,10 @@
       xmlns:xi="http://www.w3.org/2001/XInclude"
       href="Console_Access.xml"
       lang="en-US,as-IN,bn-IN,gu-IN,hi-IN,kn-IN,ml-IN,mr-IN,or-IN,pa-IN,si-LK,ta-IN,te-IN,ja-JP,zh-CN,fr-FR,es-ES"/>
+      <xi:include
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        lang="en-US,as-IN,bn-IN,gu-IN,hi-IN,kn-IN,ml-IN,mr-IN,or-IN,pa-IN,si-LK,ta-IN,te-IN,ja-JP,zh-CN,fr-FR,es-ES"
+        href="The_proc_File_System.xml" />
     <xi:include
       xmlns:xi="http://www.w3.org/2001/XInclude"
       href="The_sysconfig_Directory.xml"
diff --git a/en-US/The_proc_File_System.xml b/en-US/The_proc_File_System.xml
new file mode 100644
index 0000000..e4b8904
--- /dev/null
+++ b/en-US/The_proc_File_System.xml
@@ -0,0 +1,5236 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+<chapter
+  id="ch-proc">
+  <title>The <filename>proc</filename> File System</title>
+  <indexterm
+    significance="normal">
+    <primary>
+      <filename>proc</filename> file system</primary>
+    <secondary>introduced</secondary>
+  </indexterm>
+  <indexterm
+    significance="normal">
+    <primary>
+      <filename>/proc/</filename> directory</primary>
+    <see>
+      <filename>proc</filename> file system</see>
+  </indexterm>
+
+  <para>
+    The Linux kernel has two primary functions: to control access to
+    physical devices on the computer and to schedule when and how
+    processes interact with these devices. The <filename>/proc/</filename> directory (also called
+    the <filename>proc</filename> file system)
+    contains a hierarchy of special files which represent the current
+    state of the kernel, allowing applications and users to
+    peer into the kernel's view of the system.
+  </para>
+
+  <para>
+The <filename>/proc/</filename> directory contains a wealth of information detailing
+system hardware and any running processes. In addition, some of the files within
+<filename>/proc/</filename> can be manipulated by users and applications to communicate
+configuration changes to the kernel.
+  </para>
+
+  <note>
+    <para>
+Later versions of the 2.6 kernel have made the <filename>/proc/ide/</filename> and <filename>/proc/pci/</filename> obsolete. The <command>/proc/ide/</command> file system is now superseded by files in <command>sysfs</command>; to retrieve information on PCI devices, use <command>lspci</command> instead. For more information on <command>sysfs</command> or <command>lspci</command>, refer to their respective <command>man</command> pages.
+</para>
+  </note>
+
+  <section
+    id="s1-proc-virtual">
+    <title>A Virtual File System</title>
+    <indexterm
+      significance="normal">
+      <primary>file system</primary>
+      <secondary>virtual</secondary>
+      <see>
+        <filename>proc</filename> file system</see>
+    </indexterm>
+    <indexterm
+      significance="normal">
+      <primary>virtual file system</primary>
+      <see>
+        <filename>proc</filename> file system</see>
+    </indexterm>
+    <indexterm
+      significance="normal">
+      <primary>virtual files</primary>
+      <see>
+        <filename>proc</filename> file system</see>
+    </indexterm>
+
+    <para>
+       Linux systems store all data as <emphasis>files</emphasis>. Most users are
+       familiar with the two primary types of files: text and
+       binary. But the <filename>/proc/</filename>
+       directory contains another type of file called a
+       <firstterm>virtual file</firstterm>. As such,
+       <filename>/proc/</filename> is often referred
+       to as a <firstterm>virtual file system</firstterm>.
+     </para>
+
+    <para>
+Virtual files have unique qualities. Most of them are
+       listed as zero bytes in size, but can still  contain a large
+amount of information when viewed. In addition, most of the
+       time and date stamps on virtual files reflect the current
+       time and date, indicative of the fact they are constantly
+       updated.
+     </para>
+
+    <para>
+       Virtual files such as <filename>/proc/interrupts</filename>, <filename>/proc/meminfo</filename>, <filename>/proc/mounts</filename>, and <filename>/proc/partitions</filename> provide an
+       up-to-the-moment glimpse of the system's hardware. Others, like
+       the <filename>/proc/filesystems</filename> file
+       and the <filename>/proc/sys/</filename>
+       directory provide system configuration information and
+       interfaces.
+     </para>
+
+    <para>
+       For organizational purposes, files containing information on a
+       similar topic are grouped into virtual directories and
+       sub-directories. Process directories
+       contain information about each running process on the system.
+     </para>
+
+    <remark>
+WAS::
+       For organizational purposes, files containing information on a
+       similar topic are grouped into virtual directories and
+       sub-directories. For instance, <filename>/proc/ide/</filename> contains information for
+       all physical IDE devices.  Likewise, process directories
+       contain information about each running process on the system.
+</remark>
+
+<!-- BZ#561622, removed /proc/ide and all relevant references
+     <para>
+       For organizational purposes, files containing information on a
+       similar topic are grouped into virtual directories and
+       sub-directories. For instance, <filename
+      >/proc/ide/</filename> contains information for
+       all physical IDE devices.  Likewise, process directories
+       contain information about each running process on the system.
+     </para> -->
+
+    <section
+      id="s2-proc-viewing">
+      <title>Viewing Virtual Files</title>
+      <indexterm
+        significance="normal">
+        <primary>files, proc file system</primary>
+        <secondary>viewing</secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>viewing files within</secondary>
+      </indexterm>
+      <para>
+Most files within <filename>/proc/</filename> files operate
+similarly to text files, storing useful system and hardware data
+in human-readable text format. As such, you can use <command>cat</command>, <command>more</command>, or <command>less</command>
+to view them. For example, to display information about the system's CPU,
+run <command>cat /proc/cpuinfo</command>. This will return output similar to the
+following:
+       </para>
+
+      <screen>
+processor	: 0
+vendor_id	: AuthenticAMD
+cpu family	: 5
+model		: 9
+model name	: AMD-K6(tm) 3D+
+Processor stepping	: 1 cpu
+MHz		: 400.919
+cache size	: 256 KB
+fdiv_bug	: no
+hlt_bug		: no
+f00f_bug	: no
+coma_bug	: no
+fpu		: yes
+fpu_exception	: yes
+cpuid level	: 1
+wp		: yes
+flags		: fpu vme de pse tsc msr mce cx8 pge mmx syscall 3dnow k6_mtrr
+bogomips	: 799.53
+</screen>
+
+
+      <para>
+Some files in <command>/proc/</command> contain information that is not human-readable.
+To retrieve information from such files, use tools such as <command>lspci</command>, <command>apm</command>, <command>free</command>, and <command>top</command>.
+     </para>
+
+      <note>
+        <title>Note</title>
+
+        <para>
+	 Some of the virtual files in the <filename>/proc/</filename> directory are readable only
+	 by the root user.
+       </para>
+      </note>
+    </section>
+
+    <section
+      id="s2-proc-change">
+      <title>Changing Virtual Files</title>
+      <indexterm
+        significance="normal">
+        <primary>files, proc file system</primary>
+        <secondary>changing</secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>changing files within</secondary>
+      </indexterm>
+
+      <para>
+	 As a general rule, most virtual files within the <filename>/proc/</filename> directory are
+	 read-only. However, some can be used to adjust settings in
+	 the kernel. This is especially true for files in the
+	 <filename>/proc/sys/</filename> subdirectory.
+       </para>
+
+      <para>
+	 To change the value of a virtual file, use the following command:
+</para>
+
+      <para>
+        <command>echo <replaceable>value</replaceable> > /proc/<replaceable>file</replaceable>
+        </command>
+      </para>
+
+      <para>
+For example, to change the
+	 hostname on the fly, run:
+       </para>
+
+
+      <para>
+        <command>echo <replaceable>www.example.com</replaceable> &gt; /proc/sys/kernel/hostname </command>
+      </para>
+
+      <para>
+	 Other files act as binary or Boolean switches. Typing
+	 <command>cat
+	 /proc/sys/net/ipv4/ip_forward</command> returns either a
+	 <computeroutput>0</computeroutput> (off or false) or a
+	 <computeroutput>1</computeroutput> (on or true). A
+	 <computeroutput>0</computeroutput> indicates
+	 that the kernel is not forwarding network packets.
+To turn packet forwarding on, run <command>echo 1 > /proc/sys/net/ipv4/ip_forward</command>.
+       </para>
+
+      <note>
+        <title>Tip</title>
+        <para>
+	   Another command used to alter settings in the <filename>/proc/sys/</filename> subdirectory is
+	   <command>/sbin/sysctl</command>. For more
+	   information on this command, refer to <xref
+            linkend="s1-proc-sysctl"/>
+        </para>
+      </note>
+
+      <para>
+	 For a listing of some of the kernel configuration files available in the <filename>/proc/sys/</filename> subdirectory, refer to <xref
+          linkend="s2-proc-dir-sys"/>.
+       </para>
+    </section>
+  </section>
+
+  <section
+    id="s1-proc-topfiles">
+    <title>Top-level Files within the <filename>proc</filename> File System</title>
+    <indexterm
+      significance="normal">
+      <primary>
+        <filename>proc</filename> file system</primary>
+      <secondary>files within, top-level</secondary>
+    </indexterm>
+
+    <para>
+       Below is a list of some of the more useful virtual files in the top-level of the <filename>/proc/</filename> directory.
+     </para>
+
+    <note>
+      <title>Note</title>
+      <para>
+	 In most cases, the content of the files listed in this
+	 section are not the same as those installed on your
+	 machine. This is because much of the information is specific
+	 to the hardware on which Red Hat Enterprise Linux is running
+	 for this documentation effort.
+       </para>
+    </note>
+ <!--
+      <section id="s2-proc-apm">
+        <title><filename>/proc/apm</filename></title>
+        <indexterm significance="normal">
+ 	 <primary><filename>proc</filename> file system</primary>
+ 	 <secondary><filename>/proc/apm</filename>
+ 	 </secondary>
+        </indexterm>
+
+        <para>
+ 	 This file provides information about the state of the
+ 	 <firstterm>Advanced Power Management (APM)</firstterm> system
+ 	 and is used by the <command>apm</command>
+ 	 command. If a system with no battery is connected to an AC
+ 	 power source, this virtual file would look similar to the
+ 	 following:
+        </para>
+
+ <screen>
+ 1.16 1.2 0x07 0x01 0xff 0x80 -1% -1 ?
+ </screen>
+
+        <para>
+ 	 Running the <command>apm -v</command> command
+ 	 on such a system results in output similar to the following:
+        </para>
+
+ <screen>
+ APM BIOS 1.2 (kernel driver 1.16ac) AC on-line, no system battery
+ </screen>
+
+        <para>
+ 	 For systems which do not use a battery as a power source,
+ 	 <command>apm</command> is able do little more
+ 	 than put the machine in standby mode. The <command
+ 	>apm</command> command is much more useful on
+ 	 laptops. For example, the following output is from the
+ 	 command <command>cat /proc/apm</command> on a
+ 	 laptop while plugged into a power outlet:
+        </para>
+
+ <screen>
+ 1.16 1.2 0x03 0x01 0x03 0x09 100% -1 ?
+ </screen>
+
+        <para>
+ 	 When the same laptop is unplugged from its power source for a
+ 	 few minutes, the content of the <filename
+ 	>apm</filename> file changes to something like
+ 	 the following:
+        </para>
+
+ <screen>
+ 1.16 1.2 0x03 0x00 0x00 0x01 99% 1792 min
+ </screen>
+
+        <para>
+ 	 The <command>apm -v</command> command now
+ 	 yields more useful data, such as the following:
+        </para>
+
+ <screen>
+ APM BIOS 1.2 (kernel driver 1.16) AC off-line, battery status high: 99% (1 day, 5:52)
+ </screen>
+
+      </section>
+  -->
+    <section
+      id="s2-proc-buddyinfo">
+      <title>
+        <filename>/proc/buddyinfo</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/buddyinfo</filename>
+        </secondary>
+      </indexterm>
+
+      <para>
+	 This file is used primarily for diagnosing memory
+	 fragmentation issues. Using the buddy algorithm, each column
+	 represents the number of pages of a certain order (a certain
+	 size) that are available at any given time. For example, for
+	 zone <firstterm>direct memory access</firstterm> (DMA), there are 90 of
+	 2<superscript>(0*PAGE_SIZE)</superscript> chunks of memory. Similarly, there are 6 of
+	 2<superscript>(1*PAGE_SIZE)</superscript> chunks, and 2 of 2<superscript>(2*PAGE_SIZE)</superscript> chunks of
+	 memory available.
+       </para>
+
+      <para>
+	 The <computeroutput>DMA</computeroutput> row references
+	 the first 16 MB on a system, the <computeroutput>HighMem</computeroutput> row references all memory
+	 greater than 4 GB on a system, and the <computeroutput>Normal</computeroutput> row references all memory
+	 in between.
+       </para>
+
+      <para>
+	 The following is an example of the output typical of
+	 <filename>/proc/buddyinfo</filename>:
+       </para>
+
+      <screen>
+Node 0, zone      DMA     90      6      2      1      1      ...
+Node 0, zone   Normal   1650    310      5      0      0      ...
+Node 0, zone  HighMem      2      0      0      1      1      ...
+</screen>
+
+    </section>
+
+    <section
+      id="s2-proc-cmdline">
+      <title>
+        <filename>/proc/cmdline</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/cmdline</filename>
+        </secondary>
+      </indexterm>
+
+      <para>
+	 This file shows the parameters passed to the kernel at the
+	 time it is started. A sample <filename>/proc/cmdline</filename> file looks like the
+	 following:
+       </para>
+
+      <screen>
+ro root=/dev/VolGroup00/LogVol00 rhgb quiet 3
+</screen>
+
+      <para>
+	 This tells us that the kernel is mounted read-only (signified
+	 by <computeroutput>(ro)</computeroutput>),
+	 located on the first logical volume (<computeroutput>LogVol00</computeroutput>) of the first
+	 volume group (<computeroutput>/dev/VolGroup00</computeroutput>). <computeroutput>LogVol00</computeroutput> is the equivalent
+	 of a disk partition in a non-LVM system (Logical Volume
+	 Management), just as <computeroutput>/dev/VolGroup00</computeroutput> is similar
+	 in concept to <filename>/dev/hda1</filename>,
+	 but much more extensible.
+       </para>
+
+      <para>
+	 For more information on LVM used in Red Hat Enterprise Linux,
+	 refer to <ulink
+          url="http://www.tldp.org/HOWTO/LVM-HOWTO/index.html">http://www.tldp.org/HOWTO/LVM-HOWTO/index.html</ulink>.
+       </para>
+
+      <para>
+	 Next, <computeroutput>rhgb</computeroutput>
+	 signals that the <filename>rhgb</filename>
+	 package has been installed, and graphical booting is
+	 supported, assuming <filename>/etc/inittab</filename> shows a default
+	 runlevel set to <command>id:5:initdefault:</command>.
+       </para>
+
+      <para>
+	 Finally, <computeroutput>quiet</computeroutput> indicates all verbose
+	 kernel messages are suppressed at boot time.
+       </para>
+    </section>
+
+    <section
+      id="s2-proc-cpuinfo">
+      <title>
+        <filename>/proc/cpuinfo</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/cpuinfo</filename>
+        </secondary>
+      </indexterm>
+
+      <para>
+	 This virtual file identifies the type of processor used by
+	 your system. The following is an example of the output
+	 typical of <filename>/proc/cpuinfo</filename>:
+       </para>
+
+      <screen>
+processor	: 0
+vendor_id	: GenuineIntel
+cpu family	: 15
+model		: 2
+model name	: Intel(R) Xeon(TM) CPU 2.40GHz
+stepping	: 7 cpu
+MHz		: 2392.371
+cache size	: 512 KB
+physical id	: 0
+siblings	: 2
+runqueue	: 0
+fdiv_bug	: no
+hlt_bug		: no
+f00f_bug	: no
+coma_bug	: no
+fpu		: yes
+fpu_exception	: yes
+cpuid level	: 2
+wp		: yes
+flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca  cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
+bogomips	: 4771.02
+</screen>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            <computeroutput>processor</computeroutput> &mdash;
+	      Provides each processor with an identifying number. On
+	      systems that have one processor, only a <computeroutput>0</computeroutput> is present.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>cpu
+	      family</computeroutput> &mdash; Authoritatively
+	      identifies the type of processor in the system. For an
+	      Intel-based system, place the number in front of "86" to
+	      determine the value. This is particularly helpful for
+	      those attempting to identify the architecture of an
+	      older system such as a 586, 486, or 386. Because some
+	      RPM packages are compiled for each of these particular
+	      architectures, this value also helps users determine
+	      which packages to install.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>model
+	      name</computeroutput> &mdash; Displays the common name
+	      of the processor, including its project name.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>cpu MHz</computeroutput>
+	      &mdash; Shows the precise speed in megahertz for the
+	      processor to the thousandths decimal place.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>cache
+	      size</computeroutput> &mdash; Displays the amount of
+	      level 2 memory cache available to the processor.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>siblings</computeroutput> &mdash;
+	      Displays the number of sibling CPUs on the same physical
+	      CPU for architectures which use hyper-threading.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>flags</computeroutput>
+	      &mdash; Defines a number of different qualities about
+	      the processor, such as the presence of a floating point
+	      unit (FPU) and the ability to process MMX instructions.
+	    </para>
+        </listitem>
+      </itemizedlist>
+    </section>
+
+    <section
+      id="s2-proc-crypto">
+      <title>
+        <filename>/proc/crypto</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/crypto</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file lists all installed cryptographic ciphers used by
+	 the Linux kernel, including additional details for each. A
+	 sample <filename>/proc/crypto</filename> file
+	 looks like the following:
+       </para>
+
+      <screen>
+name         : sha1
+module       : kernel
+type         : digest
+blocksize    : 64
+digestsize   : 20
+name         : md5
+module       : md5
+type         : digest
+blocksize    : 64
+digestsize   : 16
+</screen>
+
+    </section>
+
+    <section
+      id="s2-proc-devices">
+      <title>
+        <filename>/proc/devices</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/devices</filename>
+        </secondary>
+        <tertiary>block devices</tertiary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/devices</filename>
+        </secondary>
+        <tertiary>character devices</tertiary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>character devices</primary>
+        <secondary>definition of</secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>character devices</primary>
+        <seealso>
+          <filename>/proc/devices</filename>
+        </seealso>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>block devices</primary>
+        <seealso>
+          <filename>/proc/devices</filename>
+        </seealso>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>block devices</primary>
+        <secondary>definition of</secondary>
+      </indexterm>
+      <para>
+	 This file displays the various character and block devices
+	 currently configured (not including devices whose modules are
+	 not loaded). Below is a sample output from this file:
+       </para>
+
+      <screen>
+Character devices:
+  1 mem
+  4 /dev/vc/0
+  4 tty
+  4 ttyS
+  5 /dev/tty
+  5 /dev/console
+  5 /dev/ptmx
+  7 vcs
+  10 misc
+  13 input
+  29 fb
+  36 netlink
+  128 ptm
+  136 pts
+  180 usb
+
+Block devices:
+  1 ramdisk
+  3 ide0
+  9 md
+  22 ide1
+  253 device-mapper
+  254 mdp
+</screen>
+
+      <para>
+	 The output from <filename>/proc/devices</filename> includes the major
+	 number and name of the device, and is broken into two major
+	 sections: <computeroutput>Character
+	 devices</computeroutput> and <computeroutput>Block devices</computeroutput>.
+       </para>
+
+      <para>
+        <firstterm>Character devices</firstterm> are similar to
+	 <firstterm>block devices</firstterm>, except for two basic
+	 differences:
+       </para>
+
+      <orderedlist
+        inheritnum="ignore"
+        continuation="restarts">
+        <listitem>
+          <para>
+	     Character devices do not require buffering. Block devices
+	     have a buffer available, allowing them to order requests
+	     before addressing them. This is important for devices
+	     designed to store information &mdash; such as hard drives
+	     &mdash; because the ability to order the information
+	     before writing it to the device allows it to be placed in
+	     a more efficient order.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+	     Character devices send data with no preconfigured
+	     size. Block devices can send and receive information in
+	     blocks of a size configured per device.
+	   </para>
+        </listitem>
+      </orderedlist>
+
+      <para>
+	 For more information about devices refer to the following
+	 installed documentation:
+       </para>
+
+      <screen>
+/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/devices.txt
+</screen>
+
+    </section>
+
+    <section
+      id="s2-proc-dma">
+      <title>
+        <filename>/proc/dma</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/dma</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file contains a list of the registered ISA DMA channels
+	 in use. A sample <filename>/proc/dma</filename> files looks like the
+	 following:
+       </para>
+      <screen>
+4: cascade
+</screen>
+    </section>
+
+    <section
+      id="s2-proc-execdomains">
+      <title>
+        <filename>/proc/execdomains</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/execdomains</filename>
+        </secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>execution domains</primary>
+        <seealso>
+          <filename>/proc/execdomains</filename>
+        </seealso>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>execution domains</primary>
+        <secondary>definition of</secondary>
+      </indexterm>
+      <para>
+	 This file lists the <firstterm>execution domains</firstterm>
+	 currently supported by the Linux kernel, along with the range
+	 of personalities they support.
+       </para>
+
+      <screen>
+0-0   Linux           [kernel]
+</screen>
+
+      <para>
+	 Think of execution domains as the "personality" for an
+	 operating system. Because other binary formats, such as
+	 Solaris, UnixWare, and FreeBSD, can be used with Linux,
+	 programmers can change the way the operating system treats
+	 system calls from these binaries by changing the personality
+	 of the task. Except for the <computeroutput>PER_LINUX</computeroutput> execution domain,
+	 different personalities can be implemented as dynamically
+	 loadable modules.
+       </para>
+    </section>
+
+    <section
+      id="s2-proc-fb">
+      <title>
+        <filename>/proc/fb</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/fb</filename>
+        </secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>frame buffer device</primary>
+        <seealso>
+          <filename>/proc/fb</filename>
+        </seealso>
+      </indexterm>
+      <para>
+	 This file contains a list of frame buffer devices, with the
+	 frame buffer device number and the driver that controls
+	 it. Typical output of <filename>/proc/fb</filename> for systems which contain
+	 frame buffer devices looks similar to the following:
+       </para>
+
+      <screen>
+0 VESA VGA
+</screen>
+    </section>
+
+    <section
+      id="s2-proc-filesystems">
+      <title>
+        <filename>/proc/filesystems</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/filesystems</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file displays a list of the file system types currently
+	 supported by the kernel. Sample output from a generic
+	 <filename>/proc/filesystems</filename> file
+	 looks similar to the following:
+       </para>
+
+      <screen>
+nodev   sysfs
+nodev   rootfs
+nodev   bdev
+nodev   proc
+nodev   sockfs
+nodev   binfmt_misc
+nodev   usbfs
+nodev   usbdevfs
+nodev   futexfs
+nodev   tmpfs
+nodev   pipefs
+nodev   eventpollfs
+nodev   devpts
+	ext2
+nodev   ramfs
+nodev   hugetlbfs
+	iso9660
+nodev   mqueue
+	ext3
+nodev   rpc_pipefs
+nodev   autofs
+</screen>
+
+      <para>
+	 The first column signifies whether the file system is mounted
+	 on a block device. Those beginning with <computeroutput>nodev</computeroutput> are not mounted on a
+	 device. The second column lists the names of the file systems
+	 supported.
+       </para>
+
+      <para>
+	 The <command>mount</command> command cycles
+	 through the file systems listed here when one is not
+	 specified as an argument.
+       </para>
+    </section>
+
+    <section
+      id="s2-proc-interrupts">
+      <title>
+        <filename>/proc/interrupts</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/interrupts</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file records the number of interrupts per IRQ on the x86
+	 architecture. A standard <filename>/proc/interrupts</filename> looks similar to
+	 the following:
+       </para>
+
+      <screen>
+  CPU0
+  0:   80448940          XT-PIC  timer
+  1:     174412          XT-PIC  keyboard
+  2:          0          XT-PIC  cascade
+  8:          1          XT-PIC  rtc
+ 10:     410964          XT-PIC  eth0
+ 12:      60330          XT-PIC  PS/2 Mouse
+ 14:    1314121          XT-PIC  ide0
+ 15:    5195422          XT-PIC  ide1
+NMI:          0
+ERR:          0
+</screen>
+
+      <para>
+	  For a multi-processor machine, this file may look slightly
+	  different:
+	</para>
+
+      <screen>
+	   CPU0       CPU1
+  0: 1366814704          0          XT-PIC  timer
+  1:        128        340    IO-APIC-edge  keyboard
+  2:          0          0          XT-PIC  cascade
+  8:          0          1    IO-APIC-edge  rtc
+ 12:       5323       5793    IO-APIC-edge  PS/2 Mouse
+ 13:          1          0          XT-PIC  fpu
+ 16:   11184294   15940594   IO-APIC-level  Intel EtherExpress Pro 10/100 Ethernet
+ 20:    8450043   11120093   IO-APIC-level  megaraid
+ 30:      10432      10722   IO-APIC-level  aic7xxx
+ 31:         23         22   IO-APIC-level  aic7xxx
+NMI:          0
+ERR:          0
+</screen>
+
+      <para>
+	   The first column refers to the IRQ number. Each CPU in the
+	   system has its own column and its own number of interrupts
+	   per IRQ. The next column reports the type of interrupt, and
+	   the last column contains the name of the device that is
+	   located at that IRQ.
+	 </para>
+
+      <para>
+	   Each of the types of interrupts seen in this file, which
+	   are architecture-specific, mean something different. For
+	   x86 machines, the following values are common:
+	 </para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            <computeroutput>XT-PIC</computeroutput>
+	       &mdash; This is the old AT computer interrupts.
+	     </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>IO-APIC-edge</computeroutput> &mdash;
+	       The voltage signal on this interrupt transitions from
+	       low to high, creating an <emphasis>edge</emphasis>,
+	       where the interrupt occurs and is only signaled
+	       once. This kind of interrupt, as well as the
+	       <computeroutput>IO-APIC-level</computeroutput>
+	       interrupt, are only seen on systems with processors
+	       from the 586 family and higher.
+	     </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>IO-APIC-level</computeroutput> &mdash;
+	       Generates interrupts when its voltage signal is high
+	       until the signal is low again.
+	     </para>
+        </listitem>
+      </itemizedlist>
+    </section>
+
+    <section
+      id="s2-proc-iomem">
+      <title>
+        <filename>/proc/iomem</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/iomem</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file shows you the current map of the system's memory
+	 for each physical device:
+       </para>
+
+      <screen>
+00000000-0009fbff : System RAM
+0009fc00-0009ffff : reserved
+000a0000-000bffff : Video RAM area
+000c0000-000c7fff : Video ROM
+000f0000-000fffff : System ROM
+00100000-07ffffff : System RAM
+00100000-00291ba8 : Kernel code
+00291ba9-002e09cb : Kernel data
+e0000000-e3ffffff : VIA Technologies, Inc. VT82C597 [Apollo VP3] e4000000-e7ffffff : PCI Bus #01
+e4000000-e4003fff : Matrox Graphics, Inc. MGA G200 AGP
+e5000000-e57fffff : Matrox Graphics, Inc. MGA G200 AGP
+e8000000-e8ffffff : PCI Bus #01
+e8000000-e8ffffff : Matrox Graphics, Inc. MGA G200 AGP
+ea000000-ea00007f : Digital Equipment Corporation DECchip 21140 [FasterNet]
+ea000000-ea00007f : tulip ffff0000-ffffffff : reserved
+</screen>
+
+      <para>
+	 The first column displays the memory registers used by each
+	 of the different types of memory. The second column lists the
+	 kind of memory located within those registers and displays
+	 which memory registers are used by the kernel within the
+	 system RAM or, if the network interface card has multiple
+	 Ethernet ports, the memory registers assigned for each port.
+       </para>
+    </section>
+
+    <section
+      id="s2-proc-ioports">
+      <title>
+        <filename>/proc/ioports</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/ioports</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 The output of <filename>/proc/ioports</filename> provides a list of
+	 currently registered port regions used for input or output
+	 communication with a device. This file can be quite long. The
+	 following is a partial listing:
+       </para>
+
+      <screen>
+0000-001f : dma1
+0020-003f : pic1
+0040-005f : timer
+0060-006f : keyboard
+0070-007f : rtc
+0080-008f : dma page reg
+00a0-00bf : pic2
+00c0-00df : dma2
+00f0-00ff : fpu
+0170-0177 : ide1
+01f0-01f7 : ide0
+02f8-02ff : serial(auto)
+0376-0376 : ide1
+03c0-03df : vga+
+03f6-03f6 : ide0
+03f8-03ff : serial(auto)
+0cf8-0cff : PCI conf1
+d000-dfff : PCI Bus #01
+e000-e00f : VIA Technologies, Inc. Bus Master IDE
+e000-e007 : ide0
+e008-e00f : ide1
+e800-e87f : Digital Equipment Corporation DECchip 21140 [FasterNet]
+e800-e87f : tulip
+</screen>
+
+      <para>
+	  The first column gives the I/O port address range reserved
+	  for the device listed in the second column.
+	</para>
+    </section>
+
+    <section
+      id="s2-proc-kcore">
+      <title>
+        <filename>/proc/kcore</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/kcore</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file represents the physical memory of the system and is
+	 stored in the core file format. Unlike most <filename>/proc/</filename> files, <filename>kcore</filename> displays a size. This value
+	 is given in bytes and is equal to the size of the physical
+	 memory (RAM) used plus 4 KB.
+       </para>
+
+      <para>
+	 The contents of this file are designed to be examined by a
+	 debugger, such as <command>gdb</command>, and
+	 is not human readable.
+       </para>
+
+      <warning>
+        <title>Caution</title>
+
+        <para>
+	   Do not view the <filename>/proc/kcore</filename> virtual file. The
+	   contents of the file scramble text output on the
+	   terminal. If this file is accidentally viewed, press
+	   <keycombo><keycap>Ctrl</keycap>
+            <keycap>C</keycap>
+          </keycombo>
+	   to stop the process and then type <command>reset</command> to bring back the command
+	   line prompt.
+	 </para>
+      </warning>
+    </section>
+
+    <section
+      id="s2-proc-kmsg">
+      <title>
+        <filename>/proc/kmsg</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/kmsg</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file is used to hold messages generated by the
+	 kernel. These messages are then picked up by other programs,
+	 such as <command>/sbin/klogd</command> or
+	 <command>/bin/dmesg</command>.
+       </para>
+    </section>
+
+    <section
+      id="s2-proc-loadavg">
+      <title>
+        <filename>/proc/loadavg</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/loadavg</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file provides a look at the load average in regard to
+	 both the CPU and IO over time, as well as additional data
+	 used by <command>uptime</command> and other
+	 commands. A sample <filename>/proc/loadavg</filename> file looks similar
+	 to the following:
+       </para>
+
+      <screen>
+0.20 0.18 0.12 1/80 11206
+</screen>
+<!-- BZ#248718, changes "10 minute periods" to 15 -->
+      <para>
+	 The first three columns measure CPU and IO utilization of the
+	 last one, five, and 15 minute periods. The fourth column
+	 shows the number of currently running processes and the total
+	 number of processes. The last column displays the last
+	 process ID used.
+       </para>
+
+      <para>In addition, load average also refers to the number of processes ready to run (i.e. in the run queue, waiting for a CPU share.</para>
+    </section>
+
+    <section
+      id="s2-proc-locks">
+      <title>
+        <filename>/proc/locks</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/locks</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file displays the files currently locked by the
+	 kernel. The contents of this file contain internal kernel
+	 debugging data and can vary tremendously, depending on the
+	 use of the system. A sample <filename>/proc/locks</filename> file for a lightly
+	 loaded system looks similar to the following:
+       </para>
+
+      <screen>
+1: POSIX  ADVISORY  WRITE 3568 fd:00:2531452 0 EOF
+2: FLOCK  ADVISORY  WRITE 3517 fd:00:2531448 0 EOF
+3: POSIX  ADVISORY  WRITE 3452 fd:00:2531442 0 EOF
+4: POSIX  ADVISORY  WRITE 3443 fd:00:2531440 0 EOF
+5: POSIX  ADVISORY  WRITE 3326 fd:00:2531430 0 EOF
+6: POSIX  ADVISORY  WRITE 3175 fd:00:2531425 0 EOF
+7: POSIX  ADVISORY  WRITE 3056 fd:00:2548663 0 EOF
+</screen>
+
+      <para>
+	 Each lock has its own line which starts with a unique
+	 number. The second column refers to the class of lock used,
+	 with <computeroutput>FLOCK</computeroutput>
+	 signifying the older-style UNIX file locks from a <command>flock</command> system call and
+	 <computeroutput>POSIX</computeroutput>
+	 representing the newer POSIX locks from the <command>lockf</command> system call.
+       </para>
+
+      <para>
+	 The third column can have two values: <computeroutput>ADVISORY</computeroutput> or <computeroutput>MANDATORY</computeroutput>. <computeroutput>ADVISORY</computeroutput> means that the lock
+	 does not prevent other people from accessing the data; it
+	 only prevents other attempts to lock it. <computeroutput>MANDATORY</computeroutput> means that no
+	 other access to the data is permitted while the lock is
+	 held. The fourth column reveals whether the lock is allowing
+	 the holder <computeroutput>READ</computeroutput> or <computeroutput>WRITE</computeroutput> access to the
+	 file. The fifth column shows the ID of the process holding
+	 the lock. The sixth column shows the ID of the file being
+	 locked, in the format of <computeroutput><replaceable>MAJOR-DEVICE</replaceable>:<replaceable>MINOR-DEVICE</replaceable>:<replaceable>INODE-NUMBER</replaceable>
+        </computeroutput>. The
+	 seventh and eighth column shows the start and end of the
+	 file's locked region.
+       </para>
+    </section>
+
+    <section
+      id="s2-proc-mdstat">
+      <title>
+        <filename>/proc/mdstat</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/mdstat</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file contains the current information for multiple-disk,
+	 RAID configurations. If the system does not contain such a
+	 configuration, then <filename>/proc/mdstat</filename> looks similar to the
+	 following:
+       </para>
+
+      <screen>
+Personalities :  read_ahead not set unused devices: &lt;none&gt;
+</screen>
+
+      <para>
+	 This file remains in the same state as seen above unless a
+	 software RAID or <filename>md</filename>
+	 device is present. In that case, view <filename>/proc/mdstat</filename> to find the current
+	 status of <filename>md<replaceable>X</replaceable>
+        </filename>
+	 RAID devices.
+       </para>
+
+      <para>
+	 The <filename>/proc/mdstat</filename> file
+	 below shows a system with its <filename>md0</filename> configured as a RAID 1 device,
+	 while it is currently re-syncing the disks:
+       </para>
+
+      <screen>
+Personalities : [linear] [raid1] read_ahead 1024 sectors
+md0: active raid1 sda2[1] sdb2[0] 9940 blocks [2/2] [UU] resync=1% finish=12.3min algorithm 2 [3/3] [UUU]
+unused devices: &lt;none&gt;
+</screen>
+    </section>
+
+    <section
+      id="s2-proc-meminfo">
+      <title>
+        <filename>/proc/meminfo</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/meminfo</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This is one of the more commonly used files in the <filename>/proc/</filename> directory, as it reports a
+	 large amount of valuable information about the systems RAM
+	 usage.
+       </para>
+
+      <para>
+	 The following sample <filename>/proc/meminfo</filename> virtual file is from
+	 a system with 256 MB of RAM and 512 MB of swap space:
+       </para>
+
+      <screen>
+MemTotal:       255908 kB
+MemFree:         69936 kB
+Buffers:         15812 kB
+Cached:         115124 kB
+SwapCached:          0 kB
+Active:          92700 kB
+Inactive:        63792 kB
+HighTotal:           0 kB
+HighFree:            0 kB
+LowTotal:       255908 kB
+LowFree:         69936 kB
+SwapTotal:      524280 kB
+SwapFree:       524280 kB
+Dirty:               4 kB
+Writeback:           0 kB
+Mapped:          42236 kB
+Slab:            25912 kB
+Committed_AS:   118680 kB
+PageTables:       1236 kB
+VmallocTotal:  3874808 kB
+VmallocUsed:      1416 kB
+VmallocChunk:  3872908 kB
+HugePages_Total:     0
+HugePages_Free:      0
+Hugepagesize:     4096 kB
+</screen>
+
+      <para>
+	 Much of the information here is used by the <command>free</command>, <command>top</command>, and <command>ps</command> commands. In fact, the output of
+	 the <command>free</command> command is
+	 similar in appearance to the contents and structure of
+	 <filename>/proc/meminfo</filename>. But by
+	 looking directly at <filename>/proc/meminfo</filename>, more details are
+	 revealed:
+       </para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            <computeroutput>MemTotal</computeroutput>
+	     &mdash; Total amount of physical RAM, in kilobytes.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>MemFree</computeroutput>
+	     &mdash; The amount of physical RAM, in kilobytes, left
+	     unused by the system.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>Buffers</computeroutput>
+	     &mdash; The amount of physical RAM, in kilobytes, used
+	     for file buffers.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>Cached</computeroutput>
+	     &mdash; The amount of physical RAM, in kilobytes, used as
+	     cache memory.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>SwapCached</computeroutput> &mdash; The
+	     amount of swap, in kilobytes, used as cache memory.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>Active</computeroutput>
+	     &mdash; The total amount of buffer or page cache memory,
+	     in kilobytes, that is in active use. This is memory that
+	     has been recently used and is usually not reclaimed for
+	     other purposes.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>Inactive</computeroutput>
+	     &mdash; The total amount of buffer or page cache memory,
+	     in kilobytes, that are free and available. This is memory
+	     that has not been recently used and can be reclaimed for
+	     other purposes.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>HighTotal</computeroutput> and
+	     <computeroutput>HighFree</computeroutput>
+	     &mdash; The total and free amount of memory, in
+	     kilobytes, that is not directly mapped into kernel
+	     space. The <computeroutput>HighTotal</computeroutput> value can vary
+	     based on the type of kernel used.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>LowTotal</computeroutput>
+	     and <computeroutput>LowFree</computeroutput> &mdash; The
+	     total and free amount of memory, in kilobytes, that is
+	     directly mapped into kernel space. The <computeroutput>LowTotal</computeroutput> value can vary
+	     based on the type of kernel used.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>SwapTotal</computeroutput> &mdash; The
+	     total amount of swap available, in kilobytes.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>SwapFree</computeroutput>
+	     &mdash; The total amount of swap free, in kilobytes.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>Dirty</computeroutput>
+	     &mdash; The total amount of memory, in kilobytes, waiting
+	     to be written back to the disk.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>Writeback</computeroutput> &mdash; The
+	     total amount of memory, in kilobytes, actively being
+	     written back to the disk.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>Mapped</computeroutput>
+	     &mdash; The total amount of memory, in kilobytes, which
+	     have been used to map devices, files, or libraries using
+	     the <command>mmap</command> command.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>Slab</computeroutput>
+	     &mdash; The total amount of memory, in kilobytes, used by
+	     the kernel to cache data structures for its own use.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>Committed_AS</computeroutput> &mdash; The
+	     total amount of memory, in kilobytes, estimated to
+	     complete the workload. This value represents the worst
+	     case scenario value, and also includes swap memory.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>PageTables</computeroutput> &mdash; The
+	     total amount of memory, in kilobytes, dedicated to the
+	     lowest page table level.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>VMallocTotal</computeroutput> &mdash; The
+	     total amount of memory, in kilobytes, of total allocated
+	     virtual address space.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>VMallocUsed</computeroutput> &mdash; The
+	     total amount of memory, in kilobytes, of used virtual
+	     address space.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>VMallocChunk</computeroutput> &mdash; The
+	     largest contiguous block of memory, in kilobytes, of
+	     available virtual address space.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>HugePages_Total</computeroutput> &mdash;
+	     The total number of hugepages for the system. The number
+	     is derived by dividing <computeroutput>Hugepagesize</computeroutput> by the
+	     megabytes set aside for hugepages specified in <filename>/proc/sys/vm/hugetlb_pool</filename>. <emphasis>This
+	     statistic only appears on the x86, Itanium, and AMD64
+	     architectures.</emphasis>
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>HugePages_Free</computeroutput> &mdash;
+	     The total number of hugepages available for the
+	     system. <emphasis>This statistic only appears on the x86,
+	     Itanium, and AMD64 architectures.</emphasis>
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>Hugepagesize</computeroutput> &mdash; The
+	     size for each hugepages unit in kilobytes. By default,
+	     the value is 4096 KB on uniprocessor kernels for 32 bit
+	     architectures. For SMP, hugemem kernels, and AMD64, the
+	     default is 2048 KB. For Itanium architectures, the
+	     default is 262144 KB. <emphasis>This statistic only
+	     appears on the x86, Itanium, and AMD64
+	     architectures.</emphasis>
+          </para>
+        </listitem>
+      </itemizedlist>
+    </section>
+
+    <section
+      id="s2-proc-misc">
+      <title>
+        <filename>/proc/misc</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/misc</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file lists miscellaneous drivers registered on the
+	 miscellaneous major device, which is device number 10:
+       </para>
+
+      <screen>
+63 device-mapper 175 agpgart 135 rtc 134 apm_bios
+</screen>
+
+      <para>
+	 The first column is the minor number of each device, while
+	 the second column shows the driver in use.
+       </para>
+    </section>
+
+    <section
+      id="s2-proc-modules">
+      <title>
+        <filename>/proc/modules</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/modules</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file displays a list of all modules loaded into the
+	 kernel. Its contents vary based on the configuration and use
+	 of your system, but it should be organized in a similar
+	 manner to this sample <filename>/proc/modules</filename> file output:
+       </para>
+
+      <note>
+        <title>Note</title>
+
+        <para>
+	   This example has been reformatted into a readable
+	   format. Most of this information can also be viewed via the
+	   <command>/sbin/lsmod</command> command.
+	 </para>
+      </note>
+
+
+      <screen>
+nfs      170109  0 -          Live 0x129b0000
+lockd    51593   1 nfs,       Live 0x128b0000
+nls_utf8 1729    0 -          Live 0x12830000
+vfat     12097   0 -          Live 0x12823000
+fat      38881   1 vfat,      Live 0x1287b000
+autofs4  20293   2 -          Live 0x1284f000
+sunrpc   140453  3 nfs,lockd, Live 0x12954000
+3c59x    33257   0 -          Live 0x12871000
+uhci_hcd 28377   0 -          Live 0x12869000
+md5      3777    1 -          Live 0x1282c000
+ipv6     211845 16 -          Live 0x128de000
+ext3     92585   2 -          Live 0x12886000
+jbd      65625   1 ext3,      Live 0x12857000
+dm_mod   46677   3 -          Live 0x12833000
+</screen>
+
+
+      <para>
+	 The first column contains the name of the module.
+       </para>
+
+      <para>
+	 The second column refers to the memory size of the module, in
+	 bytes.
+       </para>
+
+      <para>
+	 The third column lists how many instances of the module are
+	 currently loaded. A value of zero represents an unloaded
+	 module.
+       </para>
+
+      <para>
+	 The fourth column states if the module depends upon another
+	 module to be present in order to function, and lists those
+	 other modules.
+       </para>
+
+      <para>
+	 The fifth column lists what load state the module is in:
+	 <command>Live</command>, <command>Loading</command>, or <command>Unloading</command> are the only possible
+	 values.
+       </para>
+
+      <para>
+	 The sixth column lists the current kernel memory offset for
+	 the loaded module. This information can be useful for
+	 debugging purposes, or for profiling tools such as <filename>oprofile</filename>.
+       </para>
+    </section>
+
+    <section
+      id="s2-proc-mounts">
+      <title>
+        <filename>/proc/mounts</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/mounts</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file provides a list of all mounts in use by the system:
+       </para>
+
+      <screen>
+rootfs / rootfs rw 0 0
+/proc /proc proc rw,nodiratime 0 0 none
+/dev ramfs rw 0 0
+/dev/mapper/VolGroup00-LogVol00 / ext3 rw 0 0
+none /dev ramfs rw 0 0
+/proc /proc proc rw,nodiratime 0 0
+/sys /sys sysfs rw 0 0
+none /dev/pts devpts rw 0 0
+usbdevfs /proc/bus/usb usbdevfs rw 0 0
+/dev/hda1 /boot ext3 rw 0 0
+none /dev/shm tmpfs rw 0 0
+none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
+sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
+</screen>
+<!-- https://bugzilla.redhat.com/show_bug.cgi?id=561622#c8
+typo corrected
+ -->
+      <para>
+	 The output found here is similar to the contents of <filename>/etc/mtab</filename>, except that <filename>/proc/mounts</filename> is more up-to-date.
+       </para>
+
+      <para>
+	 The first column specifies the device that is mounted, the
+	 second column reveals the mount point, and the third column
+	 tells the file system type, and the fourth column tells you
+	 if it is mounted read-only (<computeroutput>ro</computeroutput>) or read-write
+	 (<computeroutput>rw</computeroutput>). The
+	 fifth and sixth columns are dummy values designed to match
+	 the format used in <filename>/etc/mtab</filename>.
+       </para>
+    </section>
+
+    <section
+      id="s2-proc-mtrr">
+      <title>
+        <filename>/proc/mtrr</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/mtrr</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file refers to the current Memory Type Range Registers
+	 (MTRRs) in use with the system. If the system architecture
+	 supports MTRRs, then the <filename>/proc/mtrr</filename> file may look similar
+	 to the following:
+       </para>
+
+      <screen>
+reg00: base=0x00000000 (   0MB), size= 256MB: write-back, count=1
+reg01: base=0xe8000000 (3712MB), size=  32MB: write-combining, count=1
+</screen>
+
+      <para>
+	 MTRRs are used with the Intel P6 family of processors
+	 (Pentium II and higher) and control processor access to
+	 memory ranges. When using a video card on a PCI or AGP bus, a
+	 properly configured <filename>/proc/mtrr</filename> file can increase
+	 performance more than 150%.
+       </para>
+
+      <para>
+	 Most of the time, this value is properly configured by
+	 default. More information on manually configuring this file
+	 can be found locally at the following location:
+       </para>
+
+      <screen>
+/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/mtrr.txt
+</screen>
+    </section>
+
+    <section
+      id="s2-proc-partitions">
+      <title>
+        <filename>/proc/partitions</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/partitions</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	 This file contains partition block allocation information. A
+	 sampling of this file from a basic system looks similar to
+	 the following:
+       </para>
+
+      <screen>
+major minor  #blocks  name
+  3     0   19531250 hda
+  3     1     104391 hda1
+  3     2   19422585 hda2
+253     0   22708224 dm-0
+253     1     524288 dm-1
+</screen>
+
+      <para>
+	 Most of the information here is of little importance to the
+	 user, except for the following columns:
+       </para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            <computeroutput>major</computeroutput>
+	     &mdash; The major number of the device with this
+	     partition. The major number in the <filename>/proc/partitions</filename>,
+	     (<computeroutput>3</computeroutput>),
+	     corresponds with the block device <computeroutput>ide0</computeroutput>, in <filename>/proc/devices</filename>.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>minor</computeroutput>
+	     &mdash; The minor number of the device with this
+	     partition. This serves to separate the partitions into
+	     different physical devices and relates to the number at
+	     the end of the name of the partition.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>#blocks</computeroutput>
+	     &mdash; Lists the number of physical disk blocks
+	     contained in a particular partition.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>name</computeroutput>
+	     &mdash; The name of the partition.
+	   </para>
+        </listitem>
+      </itemizedlist>
+    </section>
+
+    <section
+      id="s2-proc-pci">
+      <title>
+        <filename>/proc/pci</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/pci</filename>
+        </secondary>
+        <tertiary>viewing using <command>lspci</command>
+        </tertiary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>
+          <command>lspci</command>
+        </primary>
+      </indexterm>
+      <para>
+	 This file contains a full listing of every PCI device on the
+	 system. Depending on the number of PCI devices, <filename>/proc/pci</filename> can be rather long. A
+	 sampling of this file from a basic system looks similar to
+	 the following:
+       </para>
+
+
+      <screen>
+Bus  0, device 0, function 0: Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 3). Master Capable. Latency=64. Prefetchable 32 bit memory at 0xe4000000 [0xe7ffffff].
+Bus  0, device 1, function 0: PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 3).   Master Capable. Latency=64. Min Gnt=128.
+Bus  0, device 4, function 0: ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 2).
+Bus  0, device 4, function 1: IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 1). Master Capable. Latency=32. I/O at 0xd800 [0xd80f].
+Bus  0, device 4, function 2: USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 1). IRQ 5. Master Capable. Latency=32. I/O at 0xd400 [0xd41f].
+Bus  0, device 4, function 3: Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 2). IRQ 9.
+Bus  0, device 9, function 0: Ethernet controller: Lite-On Communications Inc LNE100TX (rev 33). IRQ 5. Master Capable. Latency=32. I/O at 0xd000 [0xd0ff].
+Bus  0, device 12, function  0: VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1). IRQ 11. Master Capable. Latency=32. Min Gnt=4.Max Lat=255.
+</screen>
+
+      <para>
+	  This output shows a list of all PCI devices, sorted in the
+	  order of bus, device, and function. Beyond providing the
+	  name and version of the device, this list also gives
+	  detailed IRQ information so an administrator can quickly
+	  look for conflicts.
+	</para>
+
+      <note>
+        <title>Tip</title>
+        <para>
+	  To get a more readable version of this information, type:
+	</para>
+
+        <screen>
+/sbin/lspci -vb
+</screen>
+      </note>
+    </section>
+
+    <section
+      id="s2-proc-slabinfo">
+      <title>
+        <filename>/proc/slabinfo</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/slabinfo</filename>
+        </secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>slab pools</primary>
+        <see>
+          <filename>/proc/slabinfo</filename>
+        </see>
+      </indexterm>
+      <para>
+	 This file gives full information about memory usage on the
+	 <firstterm>slab</firstterm> level. Linux kernels greater than
+	 version 2.2 use <firstterm>slab pools</firstterm> to manage
+	 memory above the page level. Commonly used objects have their
+	 own slab pools.
+       </para>
+
+      <para>
+	 Instead of parsing the highly verbose <filename>/proc/slabinfo</filename> file manually, the
+	 <filename>/usr/bin/slabtop</filename> program
+	 displays kernel slab cache information in real time. This
+	 program allows for custom configurations, including column
+	 sorting and screen refreshing.
+       </para>
+
+      <para>
+	 A sample screen shot of <filename>/usr/bin/slabtop</filename> usually looks
+	 like the following example:
+       </para>
+
+      <screen>
+Active / Total Objects (% used)    : 133629 / 147300 (90.7%)
+Active / Total Slabs (% used)      : 11492 / 11493 (100.0%)
+Active / Total Caches (% used)     : 77 / 121 (63.6%)
+Active / Total Size (% used)       : 41739.83K / 44081.89K (94.7%)
+Minimum / Average / Maximum Object : 0.01K / 0.30K / 128.00K
+OBJS   ACTIVE USE      OBJ   SIZE     SLABS OBJ/SLAB CACHE SIZE NAME
+44814  43159  96%    0.62K   7469      6     29876K ext3_inode_cache
+36900  34614  93%    0.05K    492     75      1968K buffer_head
+35213  33124  94%    0.16K   1531     23      6124K dentry_cache
+7364   6463  87%    0.27K    526      14      2104K radix_tree_node
+2585   1781  68%    0.08K     55      47       220K vm_area_struct
+2263   2116  93%    0.12K     73      31       292K size-128
+1904   1125  59%    0.03K     16      119        64K size-32
+1666    768  46%    0.03K     14      119        56K anon_vma
+1512   1482  98%    0.44K    168       9       672K inode_cache
+1464   1040  71%    0.06K     24      61        96K size-64
+1320    820  62%    0.19K     66      20       264K filp
+678    587  86%    0.02K      3      226        12K dm_io
+678    587  86%    0.02K      3      226        12K dm_tio
+576    574  99%    0.47K     72        8       288K proc_inode_cache
+528    514  97%    0.50K     66        8       264K size-512
+492    372  75%    0.09K     12       41        48K bio
+465    314  67%    0.25K     31       15       124K size-256
+452    331  73%    0.02K      2      226         8K biovec-1
+420    420 100%    0.19K     21       20        84K skbuff_head_cache
+305    256  83%    0.06K      5       61        20K biovec-4
+290      4   1%    0.01K      1      290         4K revoke_table
+264    264 100%    4.00K    264        1      1056K size-4096
+260    256  98%    0.19K     13       20        52K biovec-16
+260    256  98%    0.75K     52        5       208K biovec-64
+</screen>
+
+      <para>
+	  Some of the more commonly used statistics in <filename>/proc/slabinfo</filename> that are included
+	  into <filename>/usr/bin/slabtop</filename>
+	  include:
+	</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            <computeroutput>OBJS</computeroutput>
+	      &mdash; The total number of objects (memory blocks),
+	      including those in use (allocated), and some spares not
+	      in use.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>ACTIVE</computeroutput>
+	      &mdash; The number of objects (memory blocks) that are
+	      in use (allocated).
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>USE</computeroutput>
+	      &mdash; Percentage of total objects that are
+	      active. ((ACTIVE/OBJS)(100))
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>OBJ
+	      SIZE</computeroutput> &mdash; The size of the objects.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>SLABS</computeroutput>
+	      &mdash; The total number of slabs.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>OBJ/SLAB</computeroutput> &mdash; The
+	      number of objects that fit into a slab.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>CACHE
+	      SIZE</computeroutput> &mdash; The cache size of the
+	      slab.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>NAME</computeroutput>
+	      &mdash; The name of the slab.
+	    </para>
+        </listitem>
+      </itemizedlist>
+
+      <para>
+	  For more information on the <filename>/usr/bin/slabtop</filename> program, refer
+	  to the <filename>slabtop</filename> man
+	  page.
+	</para>
+    </section>
+
+    <section
+      id="s2-proc-stat">
+      <title>
+        <filename>/proc/stat</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/stat</filename>
+        </secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>epoch</primary>
+        <secondary>definition of</secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>epoch</primary>
+        <seealso>
+          <filename>/proc/stat</filename>
+        </seealso>
+      </indexterm>
+      <para>
+	  This file keeps track of a variety of different statistics
+	  about the system since it was last restarted. The contents
+	  of <filename>/proc/stat</filename>, which
+	  can be quite long, usually begins like the following
+	  example:
+	</para>
+
+      <screen>
+cpu  259246 7001 60190 34250993 137517 772 0
+cpu0 259246 7001 60190 34250993 137517 772 0
+intr 354133732 347209999 2272 0 4 4 0 0 3 1 1249247 0 0 80143 0 422626 5169433
+ctxt 12547729
+btime 1093631447
+processes 130523
+procs_running 1
+procs_blocked 0
+preempt 5651840
+cpu  209841 1554 21720 118519346 72939 154 27168
+cpu0 42536 798 4841 14790880 14778 124 3117
+cpu1 24184 569 3875 14794524 30209 29 3130
+cpu2 28616 11 2182 14818198 4020 1 3493
+cpu3 35350 6 2942 14811519 3045 0 3659
+cpu4 18209 135 2263 14820076 12465 0 3373
+cpu5 20795 35 1866 14825701 4508 0 3615
+cpu6 21607 0 2201 14827053 2325 0 3334
+cpu7 18544 0 1550 14831395 1589 0 3447
+intr 15239682 14857833 6 0 6 6 0 5 0 1 0 0 0 29 0 2 0 0 0 0 0 0 0 94982 0 286812
+ctxt 4209609
+btime 1078711415
+processes 21905
+procs_running 1
+procs_blocked 0
+</screen>
+
+      <para>
+	  Some of the more commonly used statistics include:
+	</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            <computeroutput>cpu</computeroutput>
+	      &mdash; Measures the number of
+	      <firstterm>jiffies</firstterm> (1/100 of a second for
+	      x86 systems) that the system has been in user mode, user
+	      mode with low priority (nice), system mode, idle task,
+	      I/O wait, IRQ (hardirq), and softirq respectively. The
+	      IRQ (hardirq) is the direct response to a hardware
+	      event. The IRQ takes minimal work for queuing the
+	      "heavy" work up for the softirq to execute. The softirq
+	      runs at a lower priority than the IRQ and therefore may
+	      be interrupted more frequently. The total for all CPUs
+	      is given at the top, while each individual CPU is listed
+	      below with its own statistics. The following example is
+	      a 4-way Intel Pentium Xeon configuration with
+	      multi-threading enabled, therefore showing four physical
+	      processors and four virtual processors totaling eight
+	      processors.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>page</computeroutput>
+	      &mdash; The number of memory pages the system has
+	      written in and out to disk.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>swap</computeroutput>
+	      &mdash; The number of swap pages the system has brought
+	      in and out.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>intr</computeroutput>
+	      &mdash; The number of interrupts the system has
+	      experienced.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>btime</computeroutput>
+	      &mdash; The boot time, measured in the number of seconds
+	      since January 1, 1970, otherwise known as the
+	      <firstterm>epoch</firstterm>.
+	    </para>
+        </listitem>
+      </itemizedlist>
+    </section>
+
+    <section
+      id="s2-proc-swaps">
+      <title>
+        <filename>/proc/swaps</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/swaps</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	  This file measures swap space and its utilization. For a
+	  system with only one swap partition, the output of <filename>/proc/swaps</filename> may look similar to
+	  the following:
+	</para>
+
+      <screen>
+Filename                          Type        Size     Used    Priority
+/dev/mapper/VolGroup00-LogVol01   partition   524280   0       -1
+</screen>
+
+      <para>
+	   While some of this information can be found in other files
+	   in the <filename>/proc/</filename>
+	   directory, <filename>/proc/swap</filename>
+	   provides a snapshot of every swap file name, the type of
+	   swap space, the total size, and the amount of space in use
+	   (in kilobytes). The priority column is useful when multiple
+	   swap files are in use. The lower the priority, the more
+	   likely the swap file is to be used.
+	 </para>
+    </section>
+
+    <section
+      id="s2-proc-sysrq-trigger">
+      <title>
+        <filename>/proc/sysrq-trigger</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/sysrq-trigger</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	  Using the <command>echo</command> command to
+	  write to this file, a remote root user can execute most
+	  System Request Key commands remotely as if at the local
+	  terminal. To <command>echo</command> values
+	  to this file, the <filename>/proc/sys/kernel/sysrq</filename> must be
+	  set to a value other than <computeroutput>0</computeroutput>. For more information
+	  about the System Request Key, refer to <xref
+          linkend="s3-proc-sys-kernel"/>.
+	</para>
+
+      <para>
+	  Although it is possible to write to this file, it cannot be
+	  read, even by the root user.
+	</para>
+    </section>
+
+    <section
+      id="s2-proc-uptime">
+      <title>
+        <filename>/proc/uptime</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/uptime</filename>
+        </secondary>
+      </indexterm>
+      <para>
+	  This file contains information detailing how long the system
+	  has been on since its last restart. The output of <filename>/proc/uptime</filename> is quite minimal:
+	</para>
+
+      <screen>
+350735.47 234388.90
+</screen>
+
+      <para>
+	  The first number is the total number of seconds the system
+	  has been up. The second number is how much of that time the
+	  machine has spent idle, in seconds.
+	</para>
+    </section>
+
+    <section
+      id="s2-proc-version">
+      <title>
+        <filename>/proc/version</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/version</filename>
+        </secondary>
+      </indexterm>
+
+      <para>
+This file specifies the version of the Linux kernel, the version of
+<command>gcc</command> used to compile the kernel, and the time of
+kernel compilation. It also contains the kernel compiler's user name
+(in parentheses).
+</para>
+
+
+<!-- 	https://bugzilla.redhat.com/show_bug.cgi?id=561622#c8
+WRONG. above replaces below
+<para>
+	  This file specifies the version of the Linux kernel and
+	  <filename>gcc</filename> in use, as well as
+	  the version of Red Hat Enterprise Linux installed on the
+	  system:
+	</para>
+ -->
+      <screen>
+Linux version 2.6.8-1.523 (user at foo.redhat.com) (gcc version 3.4.1 20040714 \  (Red Hat Enterprise Linux 3.4.1-7)) #1 Mon Aug 16 13:27:03 EDT 2004
+</screen>
+
+
+      <para>
+	   This information is used for a variety of purposes,
+	   including the version data presented when a user logs in.
+	 </para>
+    </section>
+  </section>
+  <section
+    id="s1-proc-directories">
+    <title>Directories within <filename>/proc/</filename>
+    </title>
+    <indexterm
+      significance="normal">
+      <primary>
+        <filename>proc</filename> file system</primary>
+      <secondary>subdirectories within</secondary>
+    </indexterm>
+    <para>
+	Common groups of information concerning the kernel are grouped
+	into directories and subdirectories within the <filename
+        moreinfo="none">/proc/</filename> directory.
+      </para>
+
+    <section
+      id="s2-proc-processdirs">
+      <title>Process Directories</title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>process directories</secondary>
+      </indexterm>
+      <para>
+	  Every <filename>/proc/</filename> directory
+	  contains a number of directories with numerical names. A
+	  listing of them may be similar to the following:
+	</para>
+
+
+      <screen>
+dr-xr-xr-x    3 root     root            0 Feb 13 01:28 1
+dr-xr-xr-x    3 root     root            0 Feb 13 01:28 1010
+dr-xr-xr-x    3 xfs      xfs             0 Feb 13 01:28 1087
+dr-xr-xr-x    3 daemon   daemon          0 Feb 13 01:28 1123
+dr-xr-xr-x    3 root     root            0 Feb 13 01:28 11307
+dr-xr-xr-x    3 apache   apache          0 Feb 13 01:28 13660
+dr-xr-xr-x    3 rpc      rpc             0 Feb 13 01:28 637
+dr-xr-xr-x    3 rpcuser  rpcuser         0 Feb 13 01:28 666
+</screen>
+
+      <para>
+	  These directories are called <firstterm>process
+	  directories</firstterm>, as they are named after a program's
+	  process ID and contain information specific to that
+	  process. The owner and group of each process directory is
+	  set to the user running the process. When the process is
+	  terminated, its <filename>/proc/</filename>
+	  process directory vanishes.
+	</para>
+
+      <para>
+	  Each process directory contains the following files:
+	</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            <computeroutput>cmdline</computeroutput>
+	      &mdash; Contains the command issued when starting the
+	      process.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>cwd</computeroutput>
+	      &mdash; A symbolic link to the current working directory
+	      for the process.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>environ</computeroutput>
+	      &mdash; A list of the environment variables for the
+	      process. The environment variable is given in all
+	      upper-case characters, and the value is in lower-case
+	      characters.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>exe</computeroutput>
+	      &mdash; A symbolic link to the executable of this
+	      process.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>fd</computeroutput>
+	      &mdash; A directory containing all of the file
+	      descriptors for a particular process. These are given in
+	      numbered links:
+	    </para>
+
+
+          <screen>
+total 0
+lrwx------    1 root     root           64 May  8 11:31 0 -&gt; /dev/null
+lrwx------    1 root     root           64 May  8 11:31 1 -&gt; /dev/null
+lrwx------    1 root     root           64 May  8 11:31 2 -&gt; /dev/null
+lrwx------    1 root     root           64 May  8 11:31 3 -&gt; /dev/ptmx
+lrwx------    1 root     root           64 May  8 11:31 4 -&gt; socket:[7774817]
+lrwx------    1 root     root           64 May  8 11:31 5 -&gt; /dev/ptmx
+lrwx------    1 root     root           64 May  8 11:31 6 -&gt; socket:[7774829]
+lrwx------    1 root     root           64 May  8 11:31 7 -&gt; /dev/ptmx
+</screen>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>maps</computeroutput>
+	      &mdash; A list of memory maps to the various executables
+	      and library files associated with this process. This
+	      file can be rather long, depending upon the complexity
+	      of the process, but sample output from the <command>sshd</command> process begins like the
+	      following:
+	    </para>
+
+          <screen>
+08048000-08086000 r-xp 00000000 03:03 391479     /usr/sbin/sshd
+08086000-08088000 rw-p 0003e000 03:03 391479	/usr/sbin/sshd
+08088000-08095000 rwxp 00000000 00:00 0
+40000000-40013000 r-xp 0000000 03:03 293205	/lib/ld-2.2.5.so
+40013000-40014000 rw-p 00013000 03:03 293205	/lib/ld-2.2.5.so
+40031000-40038000 r-xp 00000000 03:03 293282	/lib/libpam.so.0.75
+40038000-40039000 rw-p 00006000 03:03 293282	/lib/libpam.so.0.75
+40039000-4003a000 rw-p 00000000 00:00 0
+4003a000-4003c000 r-xp 00000000 03:03 293218	/lib/libdl-2.2.5.so
+4003c000-4003d000 rw-p 00001000 03:03 293218	/lib/libdl-2.2.5.so
+</screen>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>mem</computeroutput>
+	      &mdash; The memory held by the process. This file cannot
+	      be read by the user.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>root</computeroutput>
+	      &mdash; A link to the root directory of the process.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>stat</computeroutput>
+	      &mdash; The status of the process.
+	    </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>statm</computeroutput>
+	      &mdash; The status of the memory in use by the
+	      process. Below is a sample <filename>/proc/statm</filename> file:
+	    </para>
+
+
+          <screen>
+263 210 210 5 0 205 0
+</screen>
+
+          <para>
+	      The seven columns relate to different memory statistics for the process. From left to right, they report the following aspects of the memory used:
+	    </para>
+
+          <orderedlist
+            inheritnum="ignore"
+            continuation="restarts">
+            <listitem>
+              <para>
+		  Total program size, in kilobytes.
+		</para>
+            </listitem>
+
+            <listitem>
+              <para>
+		  Size of memory portions, in kilobytes.
+		</para>
+            </listitem>
+
+            <listitem>
+              <para>
+		  Number of pages that are shared.
+		</para>
+            </listitem>
+
+            <listitem>
+              <para>
+		  Number of pages that are code.
+		</para>
+            </listitem>
+
+            <listitem>
+              <para>
+		  Number of pages of data/stack.
+		</para>
+            </listitem>
+
+            <listitem>
+              <para>
+		  Number of library pages.
+		</para>
+            </listitem>
+
+            <listitem>
+              <para>
+		  Number of dirty pages.
+		</para>
+            </listitem>
+          </orderedlist>
+        </listitem>
+
+        <listitem>
+          <para>
+            <computeroutput>status</computeroutput>
+	      &mdash; The status of the process in a more readable
+	      form than <filename>stat</filename> or
+	      <filename>statm</filename>. Sample
+	      output for <command>sshd</command> looks
+	      similar to the following:
+	    </para>
+
+          <screen>
+Name:	sshd
+State:	S (sleeping)
+Tgid:	797
+Pid:	797
+PPid:	1
+TracerPid:	0
+Uid:	0	0	0	0
+Gid:	0	0	0	0
+FDSize:	32
+Groups:
+VmSize:	    3072 kB
+VmLck:	       0 kB
+VmRSS:	     840 kB
+VmData:	     104 kB
+VmStk:	      12 kB
+VmExe:	     300 kB
+VmLib:	    2528 kB
+SigPnd:	0000000000000000
+SigBlk:	0000000000000000
+SigIgn:	8000000000001000
+SigCgt:	0000000000014005
+CapInh:	0000000000000000
+CapPrm:	00000000fffffeff
+CapEff:	00000000fffffeff
+</screen>
+
+          <para>
+	      The information in this output includes the process name
+	      and ID, the state (such as <computeroutput>S (sleeping)</computeroutput> or
+	      <computeroutput>R
+	      (running)</computeroutput>), user/group ID running the
+	      process, and detailed data regarding memory usage.
+	    </para>
+        </listitem>
+      </itemizedlist>
+
+      <section
+        id="s3-proc-self">
+        <title>
+          <filename>/proc/self/</filename>
+        </title>
+        <indexterm
+          significance="normal">
+          <primary>
+            <filename>proc</filename> file system</primary>
+          <secondary>
+            <filename>/proc/self/</filename> directory</secondary>
+        </indexterm>
+        <para>
+	    The <filename>/proc/self/</filename>
+	    directory is a link to the currently running process. This
+	    allows a process to look at itself without having to know
+	    its process ID.
+	  </para>
+
+        <para>
+	    Within a shell environment, a listing of the <filename>/proc/self/</filename> directory produces
+	    the same contents as listing the process directory for
+	    that process.
+	  </para>
+      </section>
+    </section>
+
+    <section
+      id="s2-proc-dir-bus">
+      <title>
+        <filename>/proc/bus/</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/bus/</filename> directory</secondary>
+      </indexterm>
+      <para>
+	  This directory contains information specific to the various
+	  buses available on the system. For example, on a standard
+	  system containing PCI and USB buses, current data on each of
+	  these buses is available within a subdirectory within
+	  <filename>/proc/bus/</filename> by the same
+	  name, such as <filename>/proc/bus/pci/</filename>.
+	</para>
+
+      <para>
+	  The subdirectories and files available within <filename>/proc/bus/</filename> vary depending on the
+	  devices connected to the system. However, each bus type has
+	  at least one directory. Within these bus directories are
+	  normally at least one subdirectory with a numerical name,
+	  such as <filename>001</filename>, which
+	  contain binary files.
+	</para>
+
+      <para>
+	  For example, the <filename>/proc/bus/usb/</filename> subdirectory
+	  contains files that track the various devices on any USB
+	  buses, as well as the drivers required for them. The
+	  following is a sample listing of a <filename>/proc/bus/usb/</filename> directory:
+	</para>
+
+      <screen>
+total 0 dr-xr-xr-x    1 root     root            0 May  3 16:25 001
+-r--r--r--    1 root     root            0 May  3 16:25 devices
+-r--r--r--    1 root     root            0 May  3 16:25 drivers
+</screen>
+
+      <para>
+	  The <filename>/proc/bus/usb/001/</filename>
+	  directory contains all devices on the first USB bus and the
+	  <filename>devices</filename> file identifies
+	  the USB root hub on the motherboard.
+	</para>
+
+      <para>
+	  The following is a example of a <filename>/proc/bus/usb/devices</filename> file:
+	</para>
+
+      <screen>
+T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
+B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
+D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
+P:  Vendor=0000 ProdID=0000 Rev= 0.00
+S:  Product=USB UHCI Root Hub
+S:  SerialNumber=d400
+C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
+I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
+E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
+</screen>
+    </section>
+
+    <section
+      id="s2-proc-dir-driver">
+      <title>
+        <filename>/proc/driver/</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/driver/</filename> directory</secondary>
+      </indexterm>
+      <para>
+	  This directory contains information for specific drivers in
+	  use by the kernel.
+	</para>
+
+      <para>
+	  A common file found here is <filename>rtc</filename> which provides output from
+	  the driver for the system's <firstterm>Real Time Clock
+	  (RTC)</firstterm>, the device that keeps the time while the
+	  system is switched off. Sample output from <filename>/proc/driver/rtc</filename> looks like the
+	  following:
+	</para>
+
+      <screen>
+rtc_time        : 16:21:00
+rtc_date        : 2004-08-31
+rtc_epoch       : 1900
+alarm           : 21:16:27
+DST_enable      : no
+BCD             : yes
+24hr            : yes
+square_wave     : no
+alarm_IRQ       : no
+update_IRQ      : no
+periodic_IRQ    : no
+periodic_freq   : 1024
+batt_status     : okay
+</screen>
+
+      <para>
+	  For more information about the RTC, refer to the following
+	  installed documentation:
+	</para>
+
+      <para>
+        <filename>/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/rtc.txt</filename>.
+	</para>
+    </section>
+
+    <section
+      id="s2-proc-dir-fs">
+      <title>
+        <filename>/proc/fs</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/fs/</filename> directory</secondary>
+      </indexterm>
+      <para>
+	  This directory shows which file systems are exported. If
+	  running an NFS server, typing <command>cat
+	  /proc/fs/nfsd/exports</command> displays the file systems
+	  being shared and the permissions granted for those file
+	  systems. For more on file system sharing with NFS, refer to
+	  the <citetitle pubwork="chapter">Network File System (NFS)</citetitle> chapter of the <citetitle>Storage Administration Guide</citetitle>.
+	</para>
+    </section>
+
+    <section
+      id="s2-proc-dir-irq">
+      <title>
+        <filename>/proc/irq/</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/irq/</filename> directory</secondary>
+      </indexterm>
+      <para>
+	 This directory is used to set IRQ to CPU affinity, which
+	 allows the system to connect a particular IRQ to only one
+	 CPU. Alternatively, it can exclude a CPU from handling any
+	 IRQs.
+       </para>
+
+      <para>
+	 Each IRQ has its own directory, allowing for the individual
+	 configuration of each IRQ. The <filename>/proc/irq/prof_cpu_mask</filename> file is a
+	 bitmask that contains the default values for the <filename>smp_affinity</filename> file in the IRQ
+	 directory. The values in <filename>smp_affinity</filename> specify which CPUs
+	 handle that particular IRQ.
+       </para>
+
+      <para>
+	 For more information about the <filename>/proc/irq/</filename> directory, refer to the
+	 following installed documentation:
+       </para>
+
+      <screen>
+/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/filesystems/proc.txt
+</screen>
+    </section>
+
+    <section
+      id="s2-proc-dir-net">
+      <title>
+        <filename>/proc/net/</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/net/</filename> directory</secondary>
+      </indexterm>
+      <para>
+	 This directory provides a comprehensive look at various
+	 networking parameters and statistics. Each directory and
+	 virtual file within this directory describes aspects of the
+	 system's network configuration. Below is a partial list of
+	 the <filename>/proc/net/</filename>
+	 directory:
+       </para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            <filename>arp</filename> &mdash; Lists
+	     the kernel's ARP table. This file is particularly useful
+	     for connecting a hardware address to an IP address on a
+	     system.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>atm/</filename> directory
+	     &mdash; The files within this directory contain
+	     <firstterm>Asynchronous Transfer Mode (ATM)</firstterm>
+	     settings and statistics. This directory is primarily used
+	     with ATM networking and ADSL cards.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>dev</filename> &mdash; Lists
+	     the various network devices configured on the system,
+	     complete with transmit and receive statistics. This file
+	     displays the number of bytes each interface has sent and
+	     received, the number of packets inbound and outbound, the
+	     number of errors seen, the number of packets dropped, and
+	     more.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>dev_mcast</filename> &mdash;
+	     Lists Layer2 multicast groups on which each device is
+	     listening.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>igmp</filename> &mdash; Lists
+	     the IP multicast addresses which this system joined.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>ip_conntrack</filename> &mdash;
+	     Lists tracked network connections for machines that are
+	     forwarding IP connections.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>ip_tables_names</filename>
+	     &mdash; Lists the types of <command>iptables</command> in use. This file is
+	     only present if <command>iptables</command> is active on the
+	     system and contains one or more of the following values:
+	     <filename>filter</filename>, <filename>mangle</filename>, or <filename>nat</filename>.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>ip_mr_cache</filename> &mdash;
+	     Lists the multicast routing cache.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>ip_mr_vif</filename> &mdash;
+	     Lists multicast virtual interfaces.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>netstat</filename> &mdash;
+	     Contains a broad yet detailed collection of networking
+	     statistics, including TCP timeouts, SYN cookies sent and
+	     received, and much more.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>psched</filename> &mdash; Lists
+	     global packet scheduler parameters.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>raw</filename> &mdash; Lists
+	     raw device statistics.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>route</filename> &mdash; Lists
+	     the kernel's routing table.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>rt_cache</filename> &mdash;
+	     Contains the current routing cache.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>snmp</filename> &mdash; List of
+	     Simple Network Management Protocol (SNMP) data for
+	     various networking protocols in use.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>sockstat</filename> &mdash;
+	     Provides socket statistics.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>tcp</filename> &mdash; Contains
+	     detailed TCP socket information.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>tr_rif</filename> &mdash; Lists
+	     the token ring RIF routing table.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>udp</filename> &mdash; Contains
+	     detailed UDP socket information.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>unix</filename> &mdash; Lists
+	     UNIX domain sockets currently in use.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>wireless</filename> &mdash;
+	     Lists wireless interface data.
+	   </para>
+        </listitem>
+      </itemizedlist>
+    </section>
+
+    <section
+      id="s2-proc-dir-scsi">
+      <title>
+        <filename>/proc/scsi/</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/scsi/</filename> directory</secondary>
+      </indexterm>
+<!-- BZ#561622, removed /proc/ide and all relevant references
+       <para>
+	 This directory is analogous to the <filename
+	>/proc/ide/</filename> directory, but it is
+	 for connected SCSI devices.
+       </para> -->
+
+      <para>
+	 The primary file in this directory is <filename>/proc/scsi/scsi</filename>, which contains a
+	 list of every recognized SCSI device. From this listing, the
+	 type of device, as well as the model name, vendor, SCSI
+	 channel and ID data is available.
+       </para>
+
+      <para>
+	 For example, if a system contains a SCSI CD-ROM, a tape
+	 drive, a hard drive, and a RAID controller, this file looks
+	 similar to the following:
+       </para>
+
+
+      <screen>
+Attached devices:
+Host: scsi1
+Channel: 00
+Id: 05
+Lun: 00
+Vendor: NEC
+Model: CD-ROM DRIVE:466
+Rev: 1.06
+Type:   CD-ROM
+ANSI SCSI revision: 02
+Host: scsi1
+Channel: 00
+Id: 06
+Lun: 00
+Vendor: ARCHIVE
+Model: Python 04106-XXX
+Rev: 7350
+Type:   Sequential-Access
+ANSI SCSI revision: 02
+Host: scsi2
+Channel: 00
+Id: 06
+Lun: 00
+Vendor: DELL
+Model: 1x6 U2W SCSI BP
+Rev: 5.35
+Type:   Processor
+ANSI SCSI revision: 02
+Host: scsi2
+Channel: 02
+Id: 00
+Lun: 00
+Vendor: MegaRAID
+Model: LD0 RAID5 34556R
+Rev: 1.01
+Type:   Direct-Access
+ANSI SCSI revision: 02
+</screen>
+
+      <para>
+	   Each SCSI driver used by the system has its own directory
+	   within <filename>/proc/scsi/</filename>,
+	   which contains files specific to each SCSI controller using
+	   that driver. From the previous example, <filename>aic7xxx/</filename> and <filename>megaraid/</filename> directories are
+	   present, since two drivers are in use. The files in each of
+	   the directories typically contain an I/O address range, IRQ
+	   information, and statistics for the SCSI controller using
+	   that driver. Each controller can report a different type
+	   and amount of information. The Adaptec AIC-7880 Ultra SCSI
+	   host adapter's file in this example system produces the
+	   following output:
+	 </para>
+
+      <screen>
+Adaptec AIC7xxx driver version: 5.1.20/3.2.4
+Compile Options:
+TCQ Enabled By Default : Disabled
+AIC7XXX_PROC_STATS     : Enabled
+AIC7XXX_RESET_DELAY    : 5
+Adapter Configuration:
+SCSI Adapter: Adaptec AIC-7880 Ultra SCSI host adapter
+Ultra Narrow Controller     PCI MMAPed
+I/O Base: 0xfcffe000
+Adapter SEEPROM Config: SEEPROM found and used.
+Adaptec SCSI BIOS: Enabled
+IRQ: 30
+SCBs: Active 0, Max Active 1, Allocated 15, HW 16, Page 255
+Interrupts: 33726
+BIOS Control Word: 0x18a6
+Adapter Control Word: 0x1c5f
+Extended Translation: Enabled
+Disconnect Enable Flags: 0x00ff
+Ultra Enable Flags: 0x0020
+Tag Queue Enable Flags: 0x0000
+Ordered Queue Tag Flags: 0x0000
+Default Tag Queue Depth: 8
+Tagged Queue By Device array for aic7xxx
+host instance 1:       {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}
+Actual queue depth per device for aic7xxx host instance 1:       {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
+Statistics:
+
+(scsi1:0:5:0) Device using Narrow/Sync transfers at 20.0 MByte/sec, offset 15
+Transinfo settings: current(12/15/0/0), goal(12/15/0/0), user(12/15/0/0)
+Total transfers 0 (0 reads and 0 writes)
+		&lt; 2K      2K+     4K+     8K+    16K+    32K+    64K+   128K+
+Reads:        0       0       0       0       0       0       0       0
+Writes:       0       0       0       0       0       0       0       0
+
+(scsi1:0:6:0) Device using Narrow/Sync transfers at 10.0 MByte/sec, offset 15
+Transinfo settings: current(25/15/0/0), goal(12/15/0/0), user(12/15/0/0)
+Total transfers 132 (0 reads and 132 writes)
+		&lt; 2K      2K+     4K+     8K+    16K+    32K+    64K+   128K+
+Reads:        0       0       0       0       0       0       0       0
+Writes:       0       0       0       1     131       0       0       0
+</screen>
+
+      <para>
+	      This output reveals the transfer speed to the SCSI
+	      devices connected to the controller based on channel ID,
+	      as well as detailed statistics concerning the amount and
+	      sizes of files read or written by that device. For
+	      example, this controller is communicating with the
+	      CD-ROM at 20 megabytes per second, while the tape drive
+	      is only communicating at 10 megabytes per second.
+	    </para>
+    </section>
+
+    <section
+      id="s2-proc-dir-sys">
+      <title>
+        <filename>/proc/sys/</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/sys/</filename> directory</secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>system request key</primary>
+        <secondary>enabling</secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/sys/</filename> directory</secondary>
+        <tertiary>/proc/sys/kernel/sysrq</tertiary>
+        <see>system request key</see>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>changing files within</secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>System Request Key</primary>
+        <secondary>definition of</secondary>
+      </indexterm>
+      <indexterm
+        significance="normal">
+        <primary>SysRq</primary>
+        <see>system request key</see>
+      </indexterm>
+      <para>
+	      The <filename>/proc/sys/</filename>
+	      directory is different from others in <filename>/proc/</filename> because it not only
+	      provides information about the system but also allows
+	      the system administrator to immediately enable and
+	      disable kernel features.
+	    </para>
+
+      <warning>
+        <title>Caution</title>
+
+        <para>
+		Use caution when changing settings on a production
+		system using the various files in the <filename
+            moreinfo="none">/proc/sys/</filename>
+		directory. Changing the wrong setting may render the
+		kernel unstable, requiring a system reboot.
+	      </para>
+
+        <para>
+		For this reason, be sure the options are valid for
+		that file before attempting to change any value in
+		<filename>/proc/sys/</filename>.
+	      </para>
+      </warning>
+
+      <para>
+	      A good way to determine if a particular file can be
+	      configured, or if it is only designed to provide
+	      information, is to list it with the <option>-l</option>
+	      option at the shell prompt. If the file is writable, it
+	      may be used to configure the kernel.  For example, a
+	      partial listing of <filename>/proc/sys/fs</filename> looks like the
+	      following:
+	    </para>
+<!-- https://bugzilla.redhat.com/show_bug.cgi?id=561622#c10
+removed dquot-nr entry from screen -->
+      <screen>
+-r--r--r--    1 root     root            0 May 10 16:14 dentry-state
+-rw-r--r--    1 root     root            0 May 10 16:14 dir-notify-enable
+-rw-r--r--    1 root     root            0 May 10 16:14 file-max
+-r--r--r--    1 root     root            0 May 10 16:14 file-nr
+</screen>
+
+      <para>
+	      In this listing, the files <filename>dir-notify-enable</filename> and
+	      <filename>file-max</filename> can be
+	      written to and, therefore, can be used to configure the
+	      kernel. The other files only provide feedback on current
+	      settings.
+	    </para>
+
+      <para>
+	      Changing a value within a <filename>/proc/sys/</filename> file is done by
+	      echoing the new value into the file. For example, to
+	      enable the System Request Key on a running kernel, type
+	      the command:
+	    </para>
+
+      <screen>
+echo 1 &gt; /proc/sys/kernel/sysrq
+</screen>
+
+      <para>
+	      This changes the value for <filename>sysrq</filename> from <computeroutput>0</computeroutput> (off) to
+	      <computeroutput>1</computeroutput> (on).
+	    </para>
+
+      <para>
+	      A few <filename>/proc/sys/</filename>
+	      configuration files contain more than one value. To
+	      correctly send new values to them, place a space
+	      character between each value passed with the <command>echo</command> command, such as is done
+	      in this example:
+	    </para>
+
+      <screen>
+echo 4 2 45 &gt; /proc/sys/kernel/acct
+</screen>
+
+      <note>
+        <title>Note</title>
+
+        <para>
+		Any configuration changes made using the <command
+            moreinfo="none">echo</command> command disappear when
+		the system is restarted. To make configuration changes
+		take effect after the system is rebooted, refer to
+		<xref
+            linkend="s1-proc-sysctl"/>.
+	      </para>
+      </note>
+
+      <para>
+	      The <filename>/proc/sys/</filename>
+	      directory contains several subdirectories controlling
+	      different aspects of a running kernel.
+	    </para>
+
+      <section
+        id="s3-proc-sys-dev">
+        <title>
+          <filename>/proc/sys/dev/</filename>
+        </title>
+        <indexterm
+          significance="normal">
+          <primary>
+            <filename>proc</filename> file system</primary>
+          <secondary>
+            <filename>/proc/sys/</filename> directory</secondary>
+          <tertiary>
+            <filename>/proc/sys/dev/</filename> directory</tertiary>
+        </indexterm>
+
+        <para>
+		This directory provides parameters for particular
+		devices on the system. Most systems have at least two
+		directories, <filename
+            moreinfo="none">cdrom/</filename> and <filename
+            moreinfo="none">raid/</filename>. Customized kernels
+		can have other directories, such as <filename
+            moreinfo="none">parport/</filename>, which provides
+		the ability to share one parallel port between
+		multiple device drivers.
+	      </para>
+
+        <para>
+		The <filename>cdrom/</filename>
+		directory contains a file called <filename
+            moreinfo="none">info</filename>, which reveals a
+		number of important CD-ROM parameters:
+	      </para>
+
+
+        <screen>
+CD-ROM information, Id: cdrom.c 3.20 2003/12/17
+drive name:             hdc
+drive speed:            48
+drive # of slots:       1
+Can close tray:         1
+Can open tray:          1
+Can lock tray:          1
+Can change speed:       1
+Can select disk:        0
+Can read multisession:  1
+Can read MCN:           1
+Reports media changed:  1
+Can play audio:         1
+Can write CD-R:         0
+Can write CD-RW:        0
+Can read DVD:           0
+Can write DVD-R:        0
+Can write DVD-RAM:      0
+Can read MRW:           0
+Can write MRW:          0
+Can write RAM:          0
+</screen>
+
+        <para>
+		 This file can be quickly scanned to discover the
+		 qualities of an unknown CD-ROM. If multiple CD-ROMs
+		 are available on a system, each device is given its
+		 own column of information.
+	       </para>
+
+        <para>
+		 Various files in <filename>/proc/sys/dev/cdrom</filename>, such
+		 as <filename>autoclose</filename> and
+		 <filename>checkmedia</filename>, can
+		 be used to control the system's CD-ROM. Use the
+		 <command>echo</command> command to
+		 enable or disable these features.
+	       </para>
+
+        <para>
+		 If RAID support is compiled into the kernel, a
+		 <filename>/proc/sys/dev/raid/</filename>
+		 directory becomes available with at least two files
+		 in it: <filename>speed_limit_min</filename> and
+		 <filename>speed_limit_max</filename>. These
+		 settings determine the acceleration of RAID devices
+		 for I/O intensive tasks, such as resyncing the disks.
+	       </para>
+      </section>
+
+      <section
+        id="s3-proc-sys-fs">
+        <title>
+          <filename>/proc/sys/fs/</filename>
+        </title>
+        <indexterm
+          significance="normal">
+          <primary>
+            <filename>proc</filename> file system</primary>
+          <secondary>
+            <filename>/proc/sys/</filename> directory</secondary>
+          <tertiary>
+            <filename>/proc/sys/fs/</filename> directory</tertiary>
+        </indexterm>
+        <para>
+		This directory contains an array of options and
+		information concerning various aspects of the file
+		system, including quota, file handle, inode, and
+		dentry information.
+	      </para>
+
+        <para>
+		The <filename>binfmt_misc/</filename>
+		directory is used to provide kernel support for
+		miscellaneous binary formats.
+	      </para>
+
+        <para>
+		The important files in <filename
+            moreinfo="none">/proc/sys/fs/</filename> include:
+	      </para>
+
+        <itemizedlist>
+          <listitem>
+            <para>
+              <filename>dentry-state</filename>
+		    &mdash; Provides the status of the directory
+		    cache. The file looks similar to the following:
+		  </para>
+
+
+            <screen>
+57411	52939	45	0	0	0
+</screen>
+
+
+            <para>
+		    The first number reveals the total number of
+		    directory cache entries, while the second number
+		    displays the number of unused entries. The third
+		    number tells the number of seconds between when a
+		    directory has been freed and when it can be
+		    reclaimed, and the fourth measures the pages
+		    currently requested by the system. The last two
+		    numbers are not used and display only zeros.
+		  </para>
+          </listitem>
+<!-- 	https://bugzilla.redhat.com/show_bug.cgi?id=561622#c10
+		<listitem>
+		  <para>
+		    <filename>dquot-nr</filename>
+		    &mdash; Lists the maximum number of cached disk
+		    quota entries.
+		  </para>
+		</listitem> -->
+
+          <listitem>
+            <para>
+              <filename>file-max</filename>
+		    &mdash; Lists the maximum number of file handles
+		    that the kernel allocates. Raising the value in
+		    this file can resolve errors caused by a lack of
+		    available file handles.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>file-nr</filename>
+		    &mdash; Lists the number of allocated file
+		    handles, used file handles, and the maximum number
+		    of file handles.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>overflowgid</filename>
+		    and <filename>overflowuid</filename> &mdash;
+		    Defines the fixed group ID and user ID,
+		    respectively, for use with file systems that only
+		    support 16-bit group and user IDs.
+		  </para>
+          </listitem>
+<!-- https://bugzilla.redhat.com/show_bug.cgi?id=561622#c10
+		<listitem>
+		  <para>
+		    <filename>super-max</filename>
+		    &mdash; Controls the maximum number of superblocks
+		    available.
+		  </para>
+		</listitem>
+
+		<listitem>
+		  <para>
+		    <filename>super-nr</filename>
+		    &mdash; Displays the current number of superblocks
+		    in use.
+		  </para>
+		</listitem> -->
+        </itemizedlist>
+      </section>
+
+      <section
+        id="s3-proc-sys-kernel">
+        <title>
+          <filename>/proc/sys/kernel/</filename>
+        </title>
+        <indexterm
+          significance="normal">
+          <primary>
+            <filename>proc</filename> file system</primary>
+          <secondary>
+            <filename>/proc/sys/</filename> directory</secondary>
+          <tertiary>
+            <filename>/proc/sys/kernel/</filename> directory</tertiary>
+        </indexterm>
+        <indexterm
+          significance="normal">
+          <primary>System Request Key</primary>
+          <secondary>setting timing for</secondary>
+        </indexterm>
+        <indexterm
+          significance="normal">
+          <primary>
+            <filename>exec-shield</filename>
+          </primary>
+          <secondary>enabling</secondary>
+        </indexterm>
+        <indexterm
+          significance="normal">
+          <primary>
+            <filename>exec-shield</filename>
+          </primary>
+          <secondary>introducing</secondary>
+        </indexterm>
+        <indexterm
+          significance="normal">
+          <primary>
+            <filename>proc</filename> file system</primary>
+          <secondary>
+            <filename>/proc/sys/</filename> directory</secondary>
+          <tertiary>
+            <filename>/proc/sys/kernel/exec-shield</filename>
+          </tertiary>
+        </indexterm>
+        <para>
+		This directory contains a variety of different
+		configuration files that directly affect the operation
+		of the kernel. Some of the most important files
+		include:
+	      </para>
+
+        <itemizedlist>
+          <listitem>
+            <para>
+              <filename>acct</filename> &mdash;
+		    Controls the suspension of process accounting
+		    based on the percentage of free space available on
+		    the file system containing the log. By default,
+		    the file looks like the following:
+		  </para>
+
+            <screen>
+4	2	30
+</screen>
+
+            <para>
+		    The first value dictates the percentage of free
+		    space required for logging to resume, while the
+		    second value sets the threshold percentage of free
+		    space when logging is suspended. The third value
+		    sets the interval, in seconds, that the kernel
+		    polls the file system to see if logging should be
+		    suspended or resumed.
+		  </para>
+          </listitem>
+<!-- https://bugzilla.redhat.com/show_bug.cgi?id=561622#c10
+		<listitem>
+		  <para>
+		    <filename>cap-bound</filename>
+		    &mdash; Controls the <firstterm>capability
+		    bounding</firstterm> settings, which provides a
+		    list of capabilities for any process on the
+		    system. If a capability is not listed here, then
+		    no process, no matter how privileged, can do
+		    it. The idea is to make the system more secure by
+		    ensuring that certain things cannot happen, at
+		    least beyond a certain point in the boot process.
+		  </para>
+
+		  <para>
+		    For a valid list of values for this virtual file,
+		    refer to the following installed documentation:
+		  </para>
+
+		  <para>
+		    <filename
+		   >/lib/modules/<replaceable>kernel-version</replaceable>/build/include/linux/capability.h</filename>.
+		  </para>
+		</listitem>
+		-->
+          <listitem>
+            <para>
+              <filename>ctrl-alt-del</filename>
+		    &mdash; Controls whether <keycombo><keycap>Ctrl</keycap>
+                <keycap>Alt</keycap>
+                <keycap>Delete</keycap>
+              </keycombo>
+		  gracefully restarts the computer using <command>init</command> (<computeroutput>0</computeroutput>) or forces an
+		  immediate reboot without syncing the dirty buffers
+		  to disk (<computeroutput>1</computeroutput>).
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>domainname</filename>
+		    &mdash; Configures the system domain name, such as
+		    <computeroutput>example.com</computeroutput>.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>exec-shield</filename>
+		    &mdash; Configures the Exec Shield feature of the
+		    kernel. Exec Shield provides protection against
+		    certain types of buffer overflow attacks.
+		  </para>
+
+            <para>
+		    There are two possible values for this virtual
+		    file:
+		  </para>
+
+            <itemizedlist>
+              <listitem>
+                <para>
+                  <command>0</command> &mdash;
+			Disables Exec Shield.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>1</command> &mdash;
+			Enables Exec Shield. This is the default
+			value.
+		      </para>
+              </listitem>
+            </itemizedlist>
+
+            <important>
+              <title>Important</title>
+
+              <para>
+		      If a system is running security-sensitive
+		      applications that were started while Exec Shield
+		      was disabled, these applications must be
+		      restarted when Exec Shield is enabled in order
+		      for Exec Shield to take effect.
+		    </para>
+            </important>
+          </listitem>
+<!-- https://bugzilla.redhat.com/show_bug.cgi?id=561622#c10
+		<listitem>
+		  <para>
+		    <filename
+		   >exec-shield-randomize</filename>
+		    &mdash; Enables location randomization of various
+		    items in memory. This helps deter potential
+		    attackers from locating programs and daemons in
+		    memory. Each time a program or daemon starts, it
+		    is put into a different memory location each time,
+		    never in a static or absolute memory address.
+		  </para>
+
+		  <para>
+		    There are two possible values for this virtual
+		    file:
+		  </para>
+
+		  <itemizedlist>
+		    <listitem>
+		      <para>
+			<command>0</command> &mdash;
+			Disables randomization of Exec Shield. This
+			may be useful for application debugging
+			purposes.
+		      </para>
+		    </listitem>
+
+		    <listitem>
+		      <para>
+			<command>1</command> &mdash;
+			Enables randomization of Exec Shield. This is
+			the default value. Note: The <filename
+			moreinfo="none">exec-shield</filename> file
+			must also be set to <command
+			moreinfo="none">1</command> for <filename
+			moreinfo="none">exec-shield-randomize</filename>
+			to be effective.
+		      </para>
+		    </listitem>
+		  </itemizedlist>
+		</listitem> -->
+
+          <listitem>
+            <para>
+              <filename>hostname</filename>
+		    &mdash; Configures the system hostname, such as
+		    <computeroutput>www.example.com</computeroutput>.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>hotplug</filename>
+		    &mdash; Configures the utility to be used when a
+		    configuration change is detected by the
+		    system. This is primarily used with USB and
+		    Cardbus PCI. The default value of <computeroutput>/sbin/hotplug</computeroutput>
+		    should not be changed unless testing a new program
+		    to fulfill this role.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>modprobe</filename>
+		    &mdash; Sets the location of the program used to
+		    load kernel modules. The default value is
+		    <computeroutput>/sbin/modprobe</computeroutput>
+		    which means <command>kmod</command> calls it to load
+		    the module when a kernel thread calls <command>kmod</command>.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>msgmax</filename>
+		    &mdash; Sets the maximum size of any message sent
+		    from one process to another and is set to
+		    <computeroutput>8192</computeroutput> bytes by
+		    default. Be careful when raising this value, as
+		    queued messages between processes are stored in
+		    non-swappable kernel memory. Any increase in
+		    <filename>msgmax</filename> would
+		    increase RAM requirements for the system.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>msgmnb</filename>
+		    &mdash; Sets the maximum number of bytes in a
+		    single message queue. The default is
+		    <computeroutput
+                moreinfo="none">16384</computeroutput>.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>msgmni</filename>
+		    &mdash; Sets the maximum number of message queue
+		    identifiers. The default is <computeroutput>16</computeroutput>.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>osrelease</filename>
+		    &mdash; Lists the Linux kernel release
+		    number. This file can only be altered by changing
+		    the kernel source and recompiling.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>ostype</filename>
+		    &mdash; Displays the type of operating system. By
+		    default, this file is set to <computeroutput>Linux</computeroutput>, and this
+		    value can only be changed by changing the kernel
+		    source and recompiling.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>overflowgid</filename>
+		    and <filename>overflowuid</filename> &mdash;
+		    Defines the fixed group ID and user ID,
+		    respectively, for use with system calls on
+		    architectures that only support 16-bit group and
+		    user IDs.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>panic</filename> &mdash;
+		    Defines the number of seconds the kernel postpones
+		    rebooting when the system experiences a kernel
+		    panic. By default, the value is set to
+		    <computeroutput>0</computeroutput>, which disables
+		    automatic rebooting after a panic.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>printk</filename>
+		    &mdash; This file controls a variety of settings
+		    related to printing or logging error
+		    messages. Each error message reported by the
+		    kernel has a <firstterm>loglevel</firstterm>
+		    associated with it that defines the importance of
+		    the message. The loglevel values break down in
+		    this order:
+		  </para>
+
+            <itemizedlist>
+              <listitem>
+                <para>
+                  <computeroutput
+                    moreinfo="none">0</computeroutput> &mdash;
+			Kernel emergency. The system is unusable.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <computeroutput
+                    moreinfo="none">1</computeroutput> &mdash;
+			Kernel alert. Action must be taken
+			immediately.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <computeroutput
+                    moreinfo="none">2</computeroutput> &mdash;
+			Condition of the kernel is considered
+			critical.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <computeroutput
+                    moreinfo="none">3</computeroutput> &mdash;
+			General kernel error condition.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <computeroutput
+                    moreinfo="none">4</computeroutput> &mdash;
+			General kernel warning condition.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <computeroutput
+                    moreinfo="none">5</computeroutput> &mdash;
+			Kernel notice of a normal but significant
+			condition.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <computeroutput
+                    moreinfo="none">6</computeroutput> &mdash;
+			Kernel informational message.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <computeroutput
+                    moreinfo="none">7</computeroutput> &mdash;
+			Kernel debug-level messages.
+		      </para>
+              </listitem>
+            </itemizedlist>
+
+            <para>
+		    Four values are found in the <filename>printk</filename> file:
+		  </para>
+
+
+            <screen>
+6     4     1     7
+</screen>
+
+            <para>
+		    Each of these values defines a different rule for
+		    dealing with error messages. The first value,
+		    called the <firstterm>console
+		    loglevel</firstterm>, defines the lowest priority
+		    of messages printed to the console. (Note that,
+		    the lower the priority, the higher the loglevel
+		    number.) The second value sets the default
+		    loglevel for messages without an explicit loglevel
+		    attached to them. The third value sets the lowest
+		    possible loglevel configuration for the console
+		    loglevel. The last value sets the default value
+		    for the console loglevel.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>random/</filename>
+		    directory &mdash; Lists a number of values related
+		    to generating random numbers for the kernel.
+		  </para>
+          </listitem>
+<!-- https://bugzilla.redhat.com/show_bug.cgi?id=561622#c10
+		<listitem>
+		  <para>
+		    <filename>rtsig-max</filename>
+		    &mdash; Configures the maximum number of POSIX
+		    real-time signals that the system may have queued
+		    at any one time. The default value is
+		    <computeroutput
+		   >1024</computeroutput>.
+		  </para>
+		</listitem>
+
+		<listitem>
+		  <para>
+		    <filename>rtsig-nr</filename>
+		    &mdash; Lists the current number of POSIX
+		    real-time signals queued by the kernel.
+		  </para>
+		</listitem> -->
+
+          <listitem>
+            <para>
+              <filename>sem</filename> &mdash;
+		    Configures <firstterm>semaphore</firstterm>
+		    settings within the kernel. A semaphore is a
+		    System V IPC object that is used to control
+		    utilization of a particular process.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>shmall</filename>
+		    &mdash; Sets the total amount of shared memory
+		    that can be used at one time on the system, in
+		    bytes. By default, this value is <computeroutput>2097152</computeroutput>.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>shmmax</filename>
+		    &mdash; Sets the largest shared memory segment
+		    size allowed by the kernel, in bytes. By default,
+		    this value is <computeroutput>33554432</computeroutput>. However,
+		    the kernel supports much larger values than this.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>shmmni</filename>
+		    &mdash; Sets the maximum number of shared memory
+		    segments for the whole system, in bytes. By
+		    default, this value is <computeroutput>4096</computeroutput>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>sysrq</filename> &mdash;
+		    Activates the System Request Key, if this value is
+		    set to anything other than zero (<computeroutput>0</computeroutput>), the default.
+		  </para>
+
+            <para>
+		    The System Request Key allows immediate input to
+		    the kernel through simple key combinations. For
+		    example, the System Request Key can be used to
+		    immediately shut down or restart a system, sync
+		    all mounted file systems, or dump important
+		    information to the console. To initiate a System
+		    Request Key, type <keycombo><keycap>Alt</keycap>
+                <keycap>SysRq</keycap>
+                <keycap>
+                  <replaceable>system request
+		    code</replaceable>
+                </keycap>
+              </keycombo>
+		  . Replace <replaceable>system request
+		  code</replaceable> with one of the following
+		  system request codes:
+		  </para>
+
+            <itemizedlist>
+              <listitem>
+                <para>
+                  <command>r</command> &mdash;
+			Disables raw mode for the keyboard and sets it
+			to XLATE (a limited keyboard mode which does
+			not recognize modifiers such as <keycap
+                    moreinfo="none">Alt</keycap>, <keycap
+                    moreinfo="none">Ctrl</keycap>, or <keycap
+                    moreinfo="none">Shift</keycap> for all keys).
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>k</command> &mdash;
+			Kills all processes active in a virtual
+			console. Also called <firstterm>Secure Access
+			Key</firstterm> (<firstterm>SAK</firstterm>),
+			it is often used to verify that the login
+			prompt is spawned from <command
+                    moreinfo="none">init</command> and not a
+			trojan copy designed to capture usernames and
+			passwords.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>b</command> &mdash;
+			Reboots the kernel without first unmounting
+			file systems or syncing disks attached to the
+			system.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>c</command> &mdash;
+			Crashes the system without first unmounting
+			file systems or syncing disks attached to the
+			system.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>o</command> &mdash;
+			Shuts off the system.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>s</command> &mdash;
+			Attempts to sync disks attached to the system.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>u</command> &mdash;
+			Attempts to unmount and remount all file
+			systems as read-only.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>p</command> &mdash;
+			Outputs all flags and registers to the
+			console.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>t</command> &mdash;
+			Outputs a list of processes to the console.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>m</command>
+			&mdash;
+			Outputs memory statistics to the console.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>0</command> through
+			<command>9</command> &mdash;
+			Sets the log level for the console.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>e</command> &mdash;
+			Kills all processes except <command
+                    moreinfo="none">init</command> using SIGTERM.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>i</command> &mdash;
+			Kills all processes except <command
+                    moreinfo="none">init</command> using SIGKILL.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>l</command> &mdash;
+			Kills all processes using SIGKILL (including
+			<command>init</command>). <emphasis>The
+			system is unusable after issuing this System
+			Request Key code.</emphasis>
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>h</command> &mdash;
+			Displays help text.
+		      </para>
+              </listitem>
+            </itemizedlist>
+
+            <para>
+		    This feature is most beneficial when using a
+		    development kernel or when experiencing system
+		    freezes.
+		  </para>
+
+            <warning>
+              <title>Caution</title>
+
+              <para>
+		      The System Request Key feature is considered a
+		      security risk because an unattended console
+		      provides an attacker with access to the
+		      system. For this reason, it is turned off by
+		      default.
+		    </para>
+            </warning>
+
+            <para>
+		    Refer to <filename>/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/sysrq.txt</filename>
+		    for more information about the System Request Key.
+		  </para>
+          </listitem>
+
+<!-- 		https://bugzilla.redhat.com/show_bug.cgi?id=561622#c10
+
+<listitem>
+		  <para>
+		    <filename>sysrq-key</filename>
+		    &mdash; Defines the key code for the System
+		    Request Key (<computeroutput
+		   >84</computeroutput> is the
+		    default).
+		  </para>
+		</listitem>
+
+		<listitem>
+		  <para>
+		    <filename>sysrq-sticky</filename>
+		    &mdash; Defines whether the System Request Key is
+		    a chorded key combination. The accepted values are
+		    as follows:
+		  </para>
+
+		  <itemizedlist>
+		    <listitem>
+		      <para>
+			<computeroutput
+			moreinfo="none">0</computeroutput> &mdash;
+			<keycombo><keycap
+			moreinfo="none">Alt</keycap><keycap
+			moreinfo="none">SysRq</keycap>
+			</keycombo>
+			and the system request code must be pressed
+			simultaneously. This is the default value.
+		      </para>
+		    </listitem>
+
+		    <listitem>
+		      <para>
+			<computeroutput
+			moreinfo="none">1</computeroutput> &mdash;
+			<keycombo><keycap
+						     >Alt</keycap><keycap
+						     >SysRq</keycap>
+			</keycombo>
+			must be pressed simultaneously, but the system
+			request code can be pressed anytime before the
+			number of seconds specified in <filename
+			moreinfo="none">/proc/sys/kernel/sysrq-timer</filename>
+			elapses.
+		      </para>
+		    </listitem>
+		  </itemizedlist>
+		</listitem>
+
+		<listitem>
+		  <para>
+		    <filename>sysrq-timer</filename>
+		    &mdash; Specifies the number of seconds allowed to
+		    pass before the system request code must be
+		    pressed. The default value is <command
+		   >10</command>.
+		  </para>
+		</listitem>
+		-->
+          <listitem>
+            <para>
+              <filename>tainted</filename>
+		    &mdash; Indicates whether a non-GPL module is
+		    loaded.
+		  </para>
+
+            <itemizedlist>
+              <listitem>
+                <para>
+                  <computeroutput
+                    moreinfo="none">0</computeroutput> &mdash; No
+			non-GPL modules are loaded.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <computeroutput
+                    moreinfo="none">1</computeroutput> &mdash; At
+			least one module without a GPL license
+			(including modules with no license) is loaded.
+		      </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <computeroutput>2</computeroutput>
+			&mdash;
+			At least one module was force-loaded with the
+			command <command>insmod
+			-f</command>.
+		      </para>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>threads-max</filename>
+		    &mdash; Sets the maximum number of threads to be
+		    used by the kernel, with a default value of
+		    <computeroutput>2048</computeroutput>.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>version</filename>
+		    &mdash; Displays the date and time the kernel was
+		    last compiled. The first field in this file, such
+		    as <computeroutput>#3</computeroutput>, relates to
+		    the number of times a kernel was built from the
+		    source base.
+		  </para>
+          </listitem>
+        </itemizedlist>
+      </section>
+
+      <section
+        id="s3-proc-sys-net">
+        <title>
+          <filename>/proc/sys/net/</filename>
+        </title>
+        <indexterm
+          significance="normal">
+          <primary>
+            <filename>proc</filename> file system</primary>
+          <secondary>
+            <filename>/proc/sys/</filename> directory</secondary>
+          <tertiary>
+            <filename>/proc/sys/net/</filename> directory</tertiary>
+        </indexterm>
+        <indexterm
+          significance="normal">
+          <primary>DoS attack</primary>
+          <see>Denial of Service attack</see>
+        </indexterm>
+        <indexterm
+          significance="normal">
+          <primary>Denial of Service attack</primary>
+          <secondary>definition of</secondary>
+        </indexterm>
+        <indexterm
+          significance="normal">
+          <primary>Denial of Service attack</primary>
+          <seealso>
+            <filename>/proc/sys/net/</filename> directory</seealso>
+        </indexterm>
+        <para>
+		This directory contains subdirectories concerning
+		various networking topics. Various configurations at
+		the time of kernel compilation make different
+		directories available here, such as <filename
+            moreinfo="none">ethernet/</filename>, <filename
+            moreinfo="none">ipv4/</filename>, <filename
+            moreinfo="none">ipx/</filename>, and <filename
+            moreinfo="none">ipv6/</filename>. By altering the
+		files within these directories, system administrators
+		are able to adjust the network configuration on a
+		running system.
+	      </para>
+
+        <para>
+		Given the wide variety of possible networking options
+		available with Linux, only the most common <filename
+            moreinfo="none">/proc/sys/net/</filename> directories
+		are discussed.
+	      </para>
+
+        <para>
+		The <filename
+            moreinfo="none">/proc/sys/net/core/</filename>
+		directory contains a variety of settings that control
+		the interaction between the kernel and networking
+		layers. The most important of these files are:
+	      </para>
+
+        <itemizedlist>
+          <listitem>
+            <para>
+              <filename>message_burst</filename>
+		    &mdash; Sets the amount of time in tenths of a
+		    second required to write a new warning
+		    message. This setting is used to mitigate
+		    <firstterm>Denial of Service</firstterm>
+		    (<firstterm>DoS</firstterm>) attacks. The default
+		    setting is <computeroutput>50</computeroutput>.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>message_cost</filename>
+		    &mdash; Sets a cost on every warning message. The
+		    higher the value of this file (default of
+		    <computeroutput>5</computeroutput>), the more
+		    likely the warning message is ignored. This
+		    setting is used to mitigate DoS attacks.
+		  </para>
+
+            <para>
+		    The idea of a DoS attack is to bombard the
+		    targeted system with requests that generate errors
+		    and fill up disk partitions with log files or
+		    require all of the system's resources to handle
+		    the error logging. The settings in <filename>message_burst</filename> and
+		    <filename>message_cost</filename>
+		    are designed to be modified based on the system's
+		    acceptable risk versus the need for comprehensive
+		    logging.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>netdev_max_backlog</filename>
+		    &mdash; Sets the maximum number of packets allowed
+		    to queue when a particular interface receives
+		    packets faster than the kernel can process
+		    them. The default value for this file is
+		    <computeroutput
+                moreinfo="none">300</computeroutput>.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>optmem_max</filename>
+		    &mdash; Configures the maximum ancillary buffer
+		    size allowed per socket.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>rmem_default</filename>
+		    &mdash; Sets the receive socket buffer default
+		    size in bytes.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>rmem_max</filename>
+		    &mdash; Sets the receive socket buffer maximum
+		    size in bytes.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>wmem_default</filename>
+		    &mdash; Sets the send socket buffer default size
+		    in bytes.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>wmem_max</filename>
+		    &mdash; Sets the send socket buffer maximum size
+		    in bytes.
+		  </para>
+          </listitem>
+        </itemizedlist>
+
+        <para>
+		The <filename
+            moreinfo="none">/proc/sys/net/ipv4/</filename>
+		directory contains additional networking
+		settings. Many of these settings, used in conjunction
+		with one another, are useful in preventing attacks on
+		the system or when using the system to act as a
+		router.
+	      </para>
+
+        <warning>
+          <title>Caution</title>
+
+          <para>
+		  An erroneous change to these files may affect remote
+		  connectivity to the system.
+		</para>
+        </warning>
+
+        <para>
+		The following is a list of some of the more important
+		files within the <filename
+            moreinfo="none">/proc/sys/net/ipv4/</filename>
+		directory:
+	      </para>
+
+        <itemizedlist>
+<!-- https://bugzilla.redhat.com/show_bug.cgi?id=561622#c10
+		<listitem>
+		  <para>
+		    <filename
+		   >icmp_destunreach_rate</filename>,
+		    <filename
+		   >icmp_echoreply_rate</filename>,
+		    <filename
+		   >icmp_paramprob_rate</filename>,
+		    and <filename
+		   >icmp_timeexeed_rate</filename>
+		    &mdash; Set the maximum ICMP send packet rate, in
+		    1/100 of a second, to hosts under certain
+		    conditions. A setting of <computeroutput
+		   >0</computeroutput> removes any
+		    delay and is not a good idea.
+		  </para>
+		</listitem> -->
+
+          <listitem>
+            <para>
+              <filename>icmp_echo_ignore_all</filename>
+		    and <filename>icmp_echo_ignore_broadcasts</filename>
+		    &mdash; Allows the kernel to ignore ICMP ECHO
+		    packets from every host or only those originating
+		    from broadcast and multicast addresses,
+		    respectively. A value of <computeroutput>0</computeroutput> allows the
+		    kernel to respond, while a value of
+		    <computeroutput>1</computeroutput>
+		    ignores the packets.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>ip_default_ttl</filename> &mdash;
+		    Sets the default <firstterm>Time To Live
+		    (TTL)</firstterm>, which limits the number of hops
+		    a packet may make before reaching its
+		    destination. Increasing this value can diminish
+		    system performance.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>ip_forward</filename>
+		    &mdash; Permits interfaces on the system to
+		    forward packets to one other. By default, this
+		    file is set to <computeroutput>0</computeroutput>. Setting this
+		    file to <computeroutput>1</computeroutput> enables network
+		    packet forwarding.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>ip_local_port_range</filename>
+		    &mdash; Specifies the range of ports to be used by
+		    TCP or UDP when a local port is needed. The first
+		    number is the lowest port to be used and the
+		    second number specifies the highest port. Any
+		    systems that expect to require more ports than the
+		    default 1024 to 4999 should use a range from 32768
+		    to 61000.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>tcp_syn_retries</filename> &mdash;
+		    Provides a limit on the number of times the system
+		    re-transmits a SYN packet when attempting to make
+		    a connection.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>tcp_retries1</filename>
+		    &mdash; Sets the number of permitted
+		    re-transmissions attempting to answer an incoming
+		    connection. Default of <computeroutput>3</computeroutput>.
+		  </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>tcp_retries2</filename>
+		    &mdash; Sets the number of permitted
+		    re-transmissions of TCP packets. Default of
+		    <computeroutput>15</computeroutput>.
+		  </para>
+          </listitem>
+        </itemizedlist>
+
+        <para>
+		The file called
+	      </para>
+
+        <screen>
+<filename>/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/networking/ip-sysctl.txt</filename>
+        </screen>
+
+        <para>
+		contains a complete list of files and options
+		available in the <filename
+            moreinfo="none">/proc/sys/net/ipv4/</filename>
+		directory.
+	      </para>
+
+        <para>
+		A number of other directories exist within the
+		<filename
+            moreinfo="none">/proc/sys/net/ipv4/</filename>
+		directory and each covers a different aspect of the
+		network stack. The <filename
+            moreinfo="none">/proc/sys/net/ipv4/conf/</filename>
+		directory allows each system interface to be
+		configured in different ways, including the use of
+		default settings for unconfigured devices (in the
+		<filename
+            moreinfo="none">/proc/sys/net/ipv4/conf/default/</filename>
+		subdirectory) and settings that override all special
+		configurations (in the <filename
+            moreinfo="none">/proc/sys/net/ipv4/conf/all/</filename>
+		subdirectory).
+	      </para>
+
+        <para>
+		The <filename
+            moreinfo="none">/proc/sys/net/ipv4/neigh/</filename>
+		directory contains settings for communicating with a
+		host directly connected to the system (called a
+		network neighbor) and also contains different settings
+		for systems more than one hop away.
+	      </para>
+
+        <para>
+		Routing over IPV4 also has its own directory,
+		<filename
+            moreinfo="none">/proc/sys/net/ipv4/route/</filename>. Unlike
+		<filename>conf/</filename> and
+		<filename>neigh/</filename>, the
+		<filename
+            moreinfo="none">/proc/sys/net/ipv4/route/</filename>
+		directory contains specifications that apply to
+		routing with any interfaces on the system. Many of
+		these settings, such as <filename
+            moreinfo="none">max_size</filename>, <filename
+            moreinfo="none">max_delay</filename>, and <filename
+            moreinfo="none">min_delay</filename>, relate to
+		controlling the size of the routing cache. To clear
+		the routing cache, write any value to the <filename
+            moreinfo="none">flush</filename> file.
+	      </para>
+
+        <para>
+		Additional information about these directories and the
+		possible values for their configuration files can be
+		found in:
+	      </para>
+
+        <screen>
+/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/filesystems/proc.txt
+</screen>
+
+      </section>
+
+      <section
+        id="s3-proc-sys-vm">
+        <title>
+          <filename>/proc/sys/vm/</filename>
+        </title>
+        <indexterm
+          significance="normal">
+          <primary>
+            <filename>proc</filename> file system</primary>
+          <secondary>
+            <filename>/proc/sys/</filename> directory</secondary>
+          <tertiary>
+            <filename>/proc/sys/vm/</filename> directory</tertiary>
+        </indexterm>
+        <indexterm
+          significance="normal">
+          <primary>hugepages</primary>
+          <secondary>configuration of</secondary>
+        </indexterm>
+        <indexterm
+          significance="normal">
+          <primary>TLB cache</primary>
+          <see>hugepages</see>
+        </indexterm>
+        <para>
+	   This directory facilitates the configuration of the Linux
+	   kernel's virtual memory (VM) subsystem. The kernel makes
+	   extensive and intelligent use of virtual memory, which is
+	   commonly referred to as swap space.
+	 </para>
+
+        <para>
+	   The following files are commonly found in the <filename>/proc/sys/vm/</filename> directory:
+	 </para>
+
+        <itemizedlist>
+          <listitem>
+            <para>
+              <filename>block_dump</filename> &mdash;
+	       Configures block I/O debugging when enabled. All
+	       read/write and block dirtying operations done to files
+	       are logged accordingly. This can be useful if
+	       diagnosing disk spin up and spin downs for laptop
+	       battery conservation. All output when <filename>block_dump</filename> is enabled can be
+	       retrieved via <command>dmesg</command>. The default value is
+	       <computeroutput>0</computeroutput>.
+	     </para>
+            <note>
+              <title>Tip</title>
+              <para>
+	       If <filename>block_dump</filename> is
+	       enabled at the same time as kernel debugging, it is
+	       prudent to stop the <command>klogd</command> daemon, as it generates
+	       erroneous disk activity caused by <filename>block_dump</filename>.
+	     </para>
+            </note>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>dirty_background_ratio</filename>
+	       &mdash; Starts background writeback of dirty data at
+	       this percentage of total memory, via a pdflush
+	       daemon. The default value is <command>10</command>.
+	     </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>dirty_expire_centisecs</filename>
+	       &mdash; Defines when dirty in-memory data is old enough
+	       to be eligible for writeout. Data which has been dirty
+	       in-memory for longer than this interval is written out
+	       next time a pdflush daemon wakes up. The default value
+	       is <command>3000</command>, expressed
+	       in hundredths of a second.
+	     </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>dirty_ratio</filename>
+	       &mdash; Starts active writeback of dirty data at this
+	       percentage of total memory for the generator of dirty
+	       data, via pdflush. The default value is <command>40</command>.
+	     </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>dirty_writeback_centisecs</filename>
+	       &mdash; Defines the interval between pdflush daemon
+	       wakeups, which periodically writes dirty in-memory data
+	       out to disk. The default value is <command>500</command>, expressed in hundredths
+	       of a second.
+	     </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>laptop_mode</filename>
+	       &mdash; Minimizes the number of times that a hard disk
+	       needs to spin up by keeping the disk spun down for as
+	       long as possible, therefore conserving battery power on
+	       laptops. This increases efficiency by combining all
+	       future I/O processes together, reducing the frequency
+	       of spin ups. The default value is <computeroutput>0</computeroutput>, but is
+	       automatically enabled in case a battery on a laptop is
+	       used.
+	     </para>
+
+            <para>
+	       This value is controlled automatically by the acpid
+	       daemon once a user is notified battery power is
+	       enabled. No user modifications or interactions are
+	       necessary if the laptop supports the ACPI (Advanced
+	       Configuration and Power Interface) specification.
+	     </para>
+
+            <para>
+	       For more information, refer to the following installed
+	       documentation:
+	     </para>
+
+            <para>
+              <filename>/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/laptop-mode.txt</filename>
+            </para>
+          </listitem>
+
+<!-- 	   https://bugzilla.redhat.com/show_bug.cgi?id=561622#c10
+
+<listitem>
+	     <para>
+	       <filename
+	      >lower_zone_protection</filename>
+	       &mdash; Determines how aggressive the kernel is in
+	       defending lower memory allocation zones. This is
+	       effective when utilized with machines configured with
+	       <filename>highmem</filename> memory
+	       space enabled. The default value is <computeroutput
+	      >0</computeroutput>, no protection at
+	       all. All other integer values are in megabytes, and
+	       <filename>lowmem</filename> memory is
+	       therefore protected from being allocated by users.
+	     </para>
+
+	     <para>
+	       For more information, refer to the following installed
+	       documentation:
+	     </para>
+
+	     <para>
+	       <filename
+	      >/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/filesystems/proc.txt</filename>
+	     </para>
+	   </listitem> -->
+
+          <listitem>
+            <para>
+              <filename>max_map_count</filename>
+	       &mdash; Configures the maximum number of memory map
+	       areas a process may have. In most cases, the default
+	       value of <computeroutput>65536</computeroutput> is appropriate.
+	     </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>min_free_kbytes</filename>
+	       &mdash; Forces the Linux VM (virtual memory manager) to
+	       keep a minimum number of kilobytes free. The VM uses
+	       this number to compute a <filename>pages_min</filename> value for each
+	       <filename>lowmem</filename> zone in the
+	       system. The default value is in respect to the total
+	       memory on the machine.
+	     </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>nr_hugepages</filename>
+	       &mdash; Indicates the current number of configured
+	       <filename>hugetlb</filename> pages in
+	       the kernel.
+	     </para>
+
+            <para>
+	       For more information, refer to the following installed
+	       documentation:
+	     </para>
+
+            <para>
+              <filename>/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/vm/hugetlbpage.txt</filename>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>nr_pdflush_threads</filename>
+	       &mdash;
+	       Indicates the number of pdflush daemons that are
+	       currently running. This file is read-only, and should
+	       not be changed by the user. Under heavy I/O loads, the
+	       default value of two is increased by the kernel.
+	     </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>overcommit_memory</filename>
+	       &mdash; Configures the conditions under which a large
+	       memory request is accepted or denied. The following
+	       three modes are available:
+	     </para>
+
+            <itemizedlist>
+              <listitem>
+                <para>
+                  <command>0</command> &mdash; The
+		   kernel performs heuristic memory over commit
+		   handling by estimating the amount of memory
+		   available and failing requests that are blatantly
+		   invalid. Unfortunately, since memory is allocated
+		   using a heuristic rather than a precise algorithm,
+		   this setting can sometimes allow available memory
+		   on the system to be overloaded. This is the default
+		   setting.
+		 </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>1</command> &mdash; The
+		   kernel performs no memory over commit
+		   handling. Under this setting, the potential for
+		   memory overload is increased, but so is performance
+		   for memory intensive tasks (such as those executed
+		   by some scientific software).
+		 </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  <command>2</command> &mdash; The
+		   kernel fails requests for memory that add up to all
+		   of swap plus the percent of physical RAM specified
+		   in <filename>/proc/sys/vm/overcommit_ratio</filename>. This
+		   setting is best for those who desire less risk of
+		   memory overcommitment.
+		 </para>
+
+                <note>
+                  <title>Note</title>
+
+                  <para>
+		     This setting is only recommended for systems with
+		     swap areas larger than physical memory.
+		   </para>
+                </note>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>overcommit_ratio</filename>
+	       &mdash; Specifies the percentage of physical RAM
+	       considered when <filename>/proc/sys/vm/overcommit_memory</filename>
+	       is set to <command>2</command>. The
+	       default value is <command>50</command>.
+	     </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>page-cluster</filename>
+	       &mdash; Sets the number of pages read in a single
+	       attempt. The default value of <computeroutput>3</computeroutput>, which actually
+	       relates to 16 pages, is appropriate for most systems.
+	     </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <filename>swappiness</filename> &mdash;
+	       Determines how much a machine should swap. The higher
+	       the value, the more swapping occurs. The default value,
+	       as a percentage, is set to <computeroutput>60</computeroutput>.
+	     </para>
+          </listitem>
+        </itemizedlist>
+
+        <para>
+	   All kernel-based documentation can be found in the
+	   following locally installed location:
+	 </para>
+
+        <para>
+          <filename>/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/</filename>,
+	   which contains additional information.
+	 </para>
+      </section>
+    </section>
+
+    <section
+      id="s2-proc-dir-sysvipc">
+      <title>
+        <filename>/proc/sysvipc/</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/sysvipc/</filename> directory</secondary>
+      </indexterm>
+      <para>
+	 This directory contains information about System V IPC
+	 resources. The files in this directory relate to System V IPC
+	 calls for messages (<filename>msg</filename>), semaphores (<filename>sem</filename>), and shared memory (<filename>shm</filename>).
+       </para>
+    </section>
+
+    <section
+      id="s2-proc-tty">
+      <title>
+        <filename>/proc/tty/</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/tty/</filename> directory</secondary>
+      </indexterm>
+      <para>
+	 This directory contains information about the available and
+	 currently used <firstterm>tty devices</firstterm> on the
+	 system. Originally called <firstterm>teletype
+	 devices</firstterm>, any character-based data terminals are
+	 called tty devices.
+       </para>
+
+      <para>
+	 In Linux, there are three different kinds of tty
+	 devices. <firstterm>Serial devices</firstterm> are used with
+	 serial connections, such as over a modem or using a serial
+	 cable. <firstterm>Virtual terminals</firstterm> create the
+	 common console connection, such as the virtual consoles
+	 available when pressing <keycombo><keycap>Alt</keycap>
+          <keycap>&lt;F-key&gt;</keycap>
+        </keycombo>
+       at the system console. <firstterm>Pseudo terminals</firstterm>
+       create a two-way communication that is used by some higher
+       level applications, such as XFree86. The <filename>drivers</filename> file is a list of the
+       current tty devices in use, as in the following example:
+       </para>
+
+
+      <screen>
+serial               /dev/cua        5  64-127 serial:callout
+serial               /dev/ttyS       4  64-127 serial
+pty_slave            /dev/pts      136   0-255 pty:slave
+pty_master           /dev/ptm      128   0-255 pty:master
+pty_slave            /dev/ttyp       3   0-255 pty:slave
+pty_master           /dev/pty        2   0-255 pty:master
+/dev/vc/0            /dev/vc/0       4       0 system:vtmaster
+/dev/ptmx            /dev/ptmx       5       2 system
+/dev/console         /dev/console    5       1 system:console
+/dev/tty             /dev/tty        5       0 system:/dev/tty
+unknown              /dev/vc/%d      4    1-63 console
+</screen>
+
+      <para>
+	 The <filename>/proc/tty/driver/serial</filename> file lists
+	 the usage statistics and status of each of the serial tty
+	 lines.
+       </para>
+
+      <para>
+	 In order for tty devices to be used as network devices, the
+	 Linux kernel enforces <firstterm>line discipline</firstterm>
+	 on the device. This allows the driver to place a specific
+	 type of header with every block of data transmitted over the
+	 device, making it possible for the remote end of the
+	 connection to a block of data as just one in a stream of data
+	 blocks. SLIP and PPP are common line disciplines, and each
+	 are commonly used to connect systems to one other over a
+	 serial link.
+       </para>
+<!--
+       <para>
+	 Registered line disciplines are stored in the <filename
+	>ldiscs</filename> file, and more detailed
+	 information is available within the <filename
+	>ldisc/</filename> directory.
+       </para> -->
+    </section>
+
+<!-- mprpic: Fix BZ#239313
+  Note: I used as info sources the OOM section of the
+  performance guide (http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.0/html/Realtime_Tuning_Guide/sect-Realtime_Tuning_Guide-General_System_Tuning-Swapping_and_Out_Of_Memory_Tips.html ), as well as an article about the OOM killer (http://linux-mm.org/OOM_Killer) -->
+    <section
+      id="s2-proc-pid">
+      <title>
+        <filename>/proc/<replaceable>PID</replaceable>/</filename>
+      </title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>
+          <filename>/proc/<replaceable>PID</replaceable>/</filename> directory</secondary>
+      </indexterm>
+      <para>
+        Out of Memory (OOM) refers to a computing state where all available memory, including swap space, has been allocated. When this situation occurs, it will cause the system to panic and stop functioning as expected. There is a switch that controls OOM behavior in <filename
+          class="directory">/proc/sys/vm/panic_on_oom</filename>. When set to <filename>1</filename> the kernel will panic on OOM. A setting of <filename>0</filename> instructs the kernel to call a function named <filename>oom_killer</filename> on an OOM. Usually, <filename>oom_killer</filename> can kill rogue processes and the system will survive.
+      </para>
+      <para>The easiest way to change this is to echo the new value to <filename
+          class="directory">/proc/sys/vm/panic_on_oom</filename>.</para>
+      <screen>
+# cat /proc/sys/vm/panic_on_oom
+1
+
+# echo 0 > /proc/sys/vm/panic_on_oom
+
+# cat /proc/sys/vm/panic_on_oom
+0
+      </screen>
+      <para>
+         It is also possible to prioritize which processes get killed by adjusting the <filename>oom_killer</filename> score. In <filename
+          class="directory">/proc/<replaceable>PID</replaceable>/</filename> there are two tools labelled <filename>oom_adj</filename> and <filename>oom_score</filename>. Valid scores for <filename>oom_adj</filename> are in the range -16 to +15. To see the current <filename>oom_killer</filename> score, view the <filename>oom_score</filename> for the process. <filename>oom_killer</filename> will kill processes with the highest scores first.
+      </para>
+      <para>
+This example adjusts the oom_score of a process with a <replaceable>PID</replaceable> of 12465 to make it less likely that <filename>oom_killer</filename> will kill it.
+      </para>
+      <screen>
+# cat /proc/12465/oom_score
+79872
+
+# echo -5 > /proc/12465/oom_adj
+
+# cat /proc/12465/oom_score
+78
+      </screen>
+      <para>
+      There is also a special value of -17, which disables <filename>oom_killer</filename> for that process. In the example below, <filename>oom_score</filename> returns a value of 0, indicating that this process would not be killed.
+      </para>
+      <screen>
+# cat /proc/12465/oom_score
+78
+
+# echo -17 > /proc/12465/oom_adj
+
+# cat /proc/12465/oom_score
+0
+      </screen>
+      <para>A function called <filename>badness()</filename> is used to determine the actual score for each process. This is done by adding up 'points' for each examined process. The process scoring is done in the following way:
+      </para>
+      <orderedlist>
+        <listitem>
+          <para>The basis of each process's score is its memory size.</para>
+        </listitem>
+        <listitem>
+          <para>The memory size of any of the process's children (not including a kernel thread) is also added to the score</para>
+        </listitem>
+        <listitem>
+          <para>
+          The process's score is increased for 'niced' processes and decreased for long running processes.
+        </para>
+        </listitem>
+        <listitem>
+          <para>
+          Processes with the <filename>CAP_SYS_ADMIN</filename> and <filename>CAP_SYS_RAWIO</filename> capabilities have their scores reduced.
+        </para>
+        </listitem>
+        <listitem>
+          <para>
+          The final score is then bitshifted by the value saved in the <filename>oom_adj</filename> file.
+        </para>
+        </listitem>
+      </orderedlist>
+      <para>
+        Thus, a process with the highest <filename>oom_score</filename> value will most probably be a non-priviliged, recently started process that, along with its children, uses a large amount of memory, has been 'niced', and handles no raw I/O.
+      </para>
+    </section>
+  </section>
+  <section
+    id="s1-proc-sysctl">
+    <title>Using the <command>sysctl</command> Command</title>
+    <indexterm
+      significance="normal">
+      <primary>files, proc file system</primary>
+      <secondary>changing</secondary>
+    </indexterm>
+    <indexterm
+      significance="normal">
+      <primary>files, proc file system</primary>
+      <secondary>viewing</secondary>
+    </indexterm>
+    <indexterm
+      significance="normal">
+      <primary>
+        <command>sysctl</command>
+      </primary>
+      <secondary>controlling <filename>/proc/sys/</filename>
+      </secondary>
+    </indexterm>
+    <indexterm
+      significance="normal">
+      <primary>
+        <filename>proc</filename> file system</primary>
+      <secondary>
+        <filename>/proc/sys/</filename> directory</secondary>
+      <seealso>
+        <command>sysctl</command>
+      </seealso>
+    </indexterm>
+    <indexterm
+      significance="normal">
+      <primary>
+        <filename>proc</filename> file system</primary>
+      <secondary>changing files within</secondary>
+    </indexterm>
+    <indexterm
+      significance="normal">
+      <primary>
+        <command>sysctl</command>
+      </primary>
+      <secondary>configuring with 	<filename>/etc/sysctl.conf</filename>
+      </secondary>
+    </indexterm>
+    <para>
+       The <command>/sbin/sysctl</command> command is
+       used to view, set, and automate kernel settings in the
+       <filename>/proc/sys/</filename> directory.
+     </para>
+
+    <para>
+       For a quick overview of all settings configurable in the
+       <filename>/proc/sys/</filename> directory, type
+       the <command>/sbin/sysctl -a</command> command
+       as root. This creates a large, comprehensive list, a small
+       portion of which looks something like the following:
+     </para>
+
+    <screen>
+net.ipv4.route.min_delay = 2 kernel.sysrq = 0 kernel.sem = 250     32000     32     128
+</screen>
+
+    <para>
+       This is the same information seen if each of the files were
+       viewed individually. The only difference is the file
+       location. For example, the <filename>/proc/sys/net/ipv4/route/min_delay</filename>
+       file is listed as <computeroutput>net.ipv4.route.min_delay</computeroutput>, with
+       the directory slashes replaced by dots and the <computeroutput>proc.sys</computeroutput> portion assumed.
+     </para>
+
+    <para>
+       The <command>sysctl</command> command can be
+       used in place of <command>echo</command> to
+       assign values to writable files in the <filename>/proc/sys/</filename> directory. For example,
+       instead of using the command
+     </para>
+
+
+    <screen>
+echo 1 &gt; /proc/sys/kernel/sysrq
+</screen>
+
+    <para>
+       use the equivalent <command>sysctl</command>
+       command as follows:
+     </para>
+
+    <screen>
+sysctl -w kernel.sysrq="1"
+kernel.sysrq = 1
+</screen>
+
+
+    <para>
+       While quickly setting single values like this in <filename>/proc/sys/</filename> is helpful during
+       testing, this method does not work as well on a production
+       system as special settings within <filename>/proc/sys/</filename> are lost when the machine
+       is rebooted. To preserve custom settings, add them to the
+       <filename>/etc/sysctl.conf</filename> file.
+     </para>
+
+    <para>
+       Each time the system boots, the <command>init</command> program runs the <filename>/etc/rc.d/rc.sysinit</filename> script. This
+       script contains a command to execute <command>sysctl</command> using <filename>/etc/sysctl.conf</filename> to determine the
+       values passed to the kernel. Any values added to <filename>/etc/sysctl.conf</filename> therefore take
+       effect each time the system boots.
+     </para>
+  </section>
+  <section
+    id="s1-proc-additional-resources">
+<!--      <title>Additional Resources</title> -->
+    <title>References</title>
+    <indexterm
+      significance="normal">
+      <primary>
+        <filename>proc</filename> file system</primary>
+      <secondary>additional resources</secondary>
+    </indexterm>
+    <para>
+       Below are additional sources of information about <filename>proc</filename> file system.
+     </para>
+
+    <simplesect
+      id="s2-proc-installed-documentation">
+      <title>Installed Documentation</title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>additional resources</secondary>
+        <tertiary>installed documentation</tertiary>
+      </indexterm>
+      <para>
+	 Some of the best documentation about the <filename>proc</filename> file system is installed on
+	 the system by default.
+       </para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            <filename>/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/filesystems/proc.txt</filename>
+	     &mdash; Contains assorted, but limited, information about
+	     all aspects of the <filename>/proc/</filename> directory.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/sysrq.txt</filename>
+	     &mdash; An overview of System Request Key options.
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/sysctl/</filename>
+	     &mdash; A directory containing a variety of <command>sysctl</command> tips, including
+	     modifying values that concern the kernel (<filename>kernel.txt</filename>), accessing file
+	     systems (<filename>fs.txt</filename>),
+	     and virtual memory use (<filename>vm.txt</filename>).
+	   </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <filename>/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/networking/ip-sysctl.txt</filename>
+	     &mdash; A detailed overview of IP networking options.
+	   </para>
+        </listitem>
+      </itemizedlist>
+    </simplesect>
+
+    <simplesect
+      id="s2-proc-useful-websites">
+      <title>Useful Websites</title>
+      <indexterm
+        significance="normal">
+        <primary>
+          <filename>proc</filename> file system</primary>
+        <secondary>additional resources</secondary>
+        <tertiary>useful websites</tertiary>
+      </indexterm>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <ulink
+              url="http://www.linuxhq.com/">http://www.linuxhq.com/</ulink>
+	     &mdash; This website maintains a complete database of
+	     source, patches, and documentation for various versions
+	     of the Linux kernel.
+	   </para>
+        </listitem>
+      </itemizedlist>
+    </simplesect>
+  </section>
+</chapter>


More information about the docs-commits mailing list