diff options
authorBruce A. Mah <bmah@FreeBSD.org>2003-10-21 05:29:42 +0000
committerBruce A. Mah <bmah@FreeBSD.org>2003-10-21 05:29:42 +0000
commitdd59ed300d7d1f73f738f73283d8c7a5cc3a593f (patch)
parentc6a9626fe61dd00d816d6cf037e003cc1f799895 (diff)
Update PAE section. Added one sentence to the original submission
describing the versions of FreeBSD that support PAE. Submitted by: hmp Reviewed by: simon Discussed with: simon, murray
Notes: svn path=/head/; revision=18511
1 files changed, 94 insertions, 26 deletions
diff --git a/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
index 4c0537ee58..292781ea4d 100644
--- a/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+++ b/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
@@ -1329,32 +1329,100 @@ pseudo-device bpf # Berkeley packet filter</programlisting>
- <title>Defeating Memory Limitations</title>
- <para>In the past, &os; never made use of memory beyond four
- gigabytes. This was termed the four gigabytes limit and
- was a hassle to those who owned machines which supported a
- memory size larger than four gigabytes. For those users, the
- &man.pae.4; driver was written. The <literal>PAE</literal>
- driver provides for memory address extensions ultimately
- permitting up to sixty-four gigabytes. To make use of this
- feature, just add:</para>
- <programlisting>options PAE</programlisting>
- <para>to the kernel configuration file as explained above.</para>
- <note>
- <para>This option is slightly experimental, and could cause
- minor problems. For instance, the kernel's virtual address
- space may need to be increased. Add the
- <option>KVA_PAGES</option> from <filename>NOTES</filename> to
- the kernel configuration file. The default number,
- <literal>260</literal>, may need to be increased and the
- <option>kern.maxvnodes</option> may need to be decreased by
- using the <command>sysctl</command> utility. Reading the
- &man.tuning.7; manual page is certainly advised.</para>
- </note>
+ <title>Large Memory Configurations (<acronym>PAE</acronym>)</title>
+ <indexterm>
+ <primary>
+ Physical Address Extensions (<acronym>PAE</acronym>)
+ </primary>
+ <secondary>
+ Large Memory Configurations
+ </secondary>
+ </indexterm>
+ <para>Large memory configuration machines require access to
+ more than the 4 gigabyte limit on User+Kernel Virtual
+ Address (<acronym>KVA</acronym>) space. Due to this
+ limitation, Intel added support for 36-bit physical address
+ space access in the &pentium; Pro and later line of CPUs.</para>
+ <para>The Physical Address Extension (<acronym>PAE</acronym>)
+ capability of the &intel; &pentium; Pro and later CPUs
+ allows memory configurations of up to 64 gigabytes.
+ &os; provides support for this capability via the
+ <option>PAE</option> kernel configuration option, available
+ in the 4.X series of &os; beginning with 4.9-RELEASE and
+ in the 5.X series of &os; beginning with 5.1-RELEASE. Due to
+ the limitations of the Intel memory architecture, no distinction
+ is made for memory above or below 4 gigabytes. Memory allocated
+ above 4 gigabytes is simply added to the pool of available
+ memory.</para>
+ <para>To enable <acronym>PAE</acronym> support in the kernel,
+ simply add the following line to your kernel configuration
+ file:</para>
+ <programlisting>options PAE</programlisting>
+ <note>
+ <para>The <acronym>PAE</acronym> support in &os; is only
+ available for &intel; IA-32 processors. It should also be
+ noted, that the <acronym>PAE</acronym> support in &os; has
+ not received wide testing, and should be considered beta
+ quality compared to other stable features of &os;.</para>
+ </note>
+ <para>PAE support in &os; has a few limitations:</para>
+ <itemizedlist>
+ <listitem>
+ <para>A process is not able to access more than 4
+ gigabytes of VM space.</para>
+ </listitem>
+ <listitem>
+ <para><acronym>KLD</acronym> modules cannot be loaded into
+ a <acronym>PAE</acronym> enabled kernel, due to the
+ differences in the build framework of a module and the
+ kernel.</para>
+ </listitem>
+ <listitem>
+ <para>Device drivers that do not use the &man.bus.dma.9;
+ interface will cause data corruption in a
+ <acronym>PAE</acronym> enabled kernel and are not
+ recommended for use. For this reason, the
+ <filename>PAE</filename> kernel
+ configuration file is provided in &os; 5.X, which
+ excludes all drivers not known to work in a PAE enabled
+ kernel.</para>
+ </listitem>
+ <listitem>
+ <para>Some system tunables determine memory resource usage
+ by the amount of available physical memory. Such
+ tunables can unnecessarily over-allocate due to the
+ large memory nature of a <acronym>PAE</acronym> system.
+ One such example is the <option>kern.maxvnodes</option>
+ sysctl, which controls the maximum number of vnodes allowed
+ in the kernel. It is advised to adjust this and other
+ such tunables to a reasonable value.</para>
+ </listitem>
+ <listitem>
+ <para>It might be necessary to increase the kernel virtual
+ address (<acronym>KVA</acronym>) space or to reduce the
+ amount of specific kernel resource that is heavily used
+ (see above) in order to avoid <acronym>KVA</acronym>
+ exhaustion. The <option>KVA_PAGES</option> kernel option
+ can be used for increasing the
+ <acronym>KVA</acronym> space.</para>
+ </listitem>
+ </itemizedlist>
+ <para>For performance and stability concerns, it is advised to
+ consult the &man.tuning.7; manual page. The &man.pae.4;
+ manual page contains up-to-date information on &os;'s
+ <acronym>PAE</acronym> support.</para>