PAE(4)
πΈ PAE(4) β Physical Address Extensions πΈ
okay so bestie, this is PAE(4) from the i386 Kernel Interfaces Manual, and it's literally the glow-up guide for Physical Address Extensions. no cap, it's giving big-memory energy π
β¨ NAME β¨
PAE β Physical Address Extensions
π SYNOPSIS π
the whole vibe in your kernel config is:
options PAE
π DESCRIPTION π
okay so the PAE option provides support for the physical address extensions capability of the Intel Pentium Pro and above CPUs, and it allows for up to 64 gigabytes of memory to be used in systems capable of supporting it. iconic behavior, honestly π
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. so yeah, it's not a magic extra-memory window for your process, bestie β it's just the page pool doing its thing π«Ά
π SEE ALSO π
go read these next, fr fr:
π° HISTORY π°
the PAE option first appeared in FreeBSD 4.9 and FreeBSD 5.1. vintage but still relevant, iykyk π
π AUTHORS π
Jake Burkholder <jake@FreeBSD.org> β thank you for your service, king π
π BUGS π
okay bestie, this is the part where we pay attention, because it's giving real talk:
- 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
PAEoption. like, do not do it. not today, not tomorrow, not ever π - many devices or their device drivers are not capable of direct memory access to physical addresses above
4gigabytes. in order to make use of direct memory access IO in a system with more than4gigabytes of memory when thePAEoption 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 thebusdmainterface. device drivers which do not account for such devices will not work reliably in a system with more than4gigabytes of memory when thePAEoption is used, and may cause data corruption. and yes, thePAEkernel configuration file includes thePAEoption, and explicitly excludes all device drivers which are known to not work or have not been tested in a system with thePAEoption and more than4gigabytes of memory. the config file is literally doing vibe checks for you π - 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
4gigabytes 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. theKVA_PAGESoption may be used to increase the kernel virtual address space, and thekern.maxvnodessysctl(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 thetuning(7)manual page, and make adjustments to the parameters documented there. so like, read the docs, bestie β it's giving self-care for your kernel πΈ
β οΈ short version:PAEis powerful, but if you load the wrong KLD modules or trust drivers that can't handle addresses above4gigabytes, things can go very not-slay. respect the caveats, periodt.
peace out and stay iconic π this page's source/version is Debian, dated April 8, 2003 β and that's the cute sign-off from the footer, bestie π
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- Copyright (c) 2003 Networks Associates Technology, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms