FreeBSD manual
download PDF document: pae.4.pdf
PAE(4) FreeBSD Kernel Interfaces Manual (i386) PAE(4)
NAME
PAE - Physical Address Extensions
SYNOPSIS
options PAE
DESCRIPTION
The PAE option provides support for the physical address extensions
capability of the Intel Pentium Pro and above CPUs, and allows for up to
64 gigabytes of memory to be used in systems capable of supporting it.
With the PAE option, memory above 4 gigabytes is simply added to the
general page pool. The system makes no distinction between memory above
or below 4 gigabytes, and no specific facility is provided for a process
or the kernel to access more memory than they would otherwise be able to
access, through a sliding window or otherwise.
SEE ALSO
smp(4), tuning(7), config(8), bus_dma(9)
HISTORY
The PAE option first appeared in FreeBSD 4.9 and FreeBSD 5.1.
AUTHORS
Jake Burkholder <jake@FreeBSD.org>
BUGS
Since KLD modules are not compiled with the same options headers that the
kernel is compiled with, they must not be loaded into a kernel compiled
with the PAE option.
Many devices or their device drivers are not capable of direct memory
access to physical addresses above 4 gigabytes. In order to make use of
direct memory access IO in a system with more than 4 gigabytes of memory
when the PAE option is used, these drivers must use a facility for
remapping or substituting physical memory which is not accessible to the
device. One such facility is provided by the busdma interface. Device
drivers which do not account for such devices will not work reliably in a
system with more than 4 gigabytes of memory when the PAE option is used,
and may cause data corruption. The PAE kernel configuration file
includes the PAE option, and explicitly excludes all device drivers which
are known to not work or have not been tested in a system with the PAE
option and more than 4 gigabytes of memory.
Many parameters which determine how memory is used in the kernel are
based on the amount of physical memory. The formulas used to determine
the values of these parameters for specific memory configurations may not
take into account the fact there may be more than 4 gigabytes of memory,
and may not scale well to these memory configurations. In particular, it
may be necessary to increase the amount of virtual address space
available to the kernel, or to reduce the amount of a specific resource
that is heavily used, in order to avoid running out of virtual address
space. The KVA_PAGES option may be used to increase the kernel virtual
address space, and the kern.maxvnodes sysctl(8) may be used to decrease
the number of vnodes allowed, an example of a resource that the kernel is
likely to overallocate in large memory configurations. For optimal
performance and stability it may be necessary to consult the tuning(7)
manual page, and make adjustments to the parameters documented there.