summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/man4.i386/pae.4 3.html
blob: 2fc54c8a495d90edeca56ac0c29441f105c15c03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<table class="head">
  <tr>
    <td class="head-ltitle">PAE(4)</td>
    <td class="head-vol">Device Drivers Manual (i386)</td>
    <td class="head-rtitle">PAE(4)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">PAE</code> &#x2014; <span class="Nd">Physical
    Address Extensions</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp"><code class="Cd">options PAE</code></p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Dv">PAE</code> 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 <code class="Dv">PAE</code> 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.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<p class="Pp"><a class="Xr">smp(4)</a>, <a class="Xr">tuning(7)</a>,
    <a class="Xr">config(8)</a>, <a class="Xr">bus_dma(9)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">The <code class="Dv">PAE</code> option first appeared in
    <span class="Ux">FreeBSD 4.9</span> and <span class="Ux">FreeBSD
  5.1</span>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp"><span class="An">Jake Burkholder</span>
    &lt;<a class="Mt" href="mailto:jake@FreeBSD.org">jake@FreeBSD.org</a>&gt;</p>
</section>
<section class="Sh">
<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
<p class="Pp">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 <code class="Dv">PAE</code> option.</p>
<p class="Pp">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 <code class="Dv">PAE</code> 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
    <code class="Nm">busdma</code> 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 <code class="Dv">PAE</code> option is used, and
    may cause data corruption. The <span class="Pa">PAE</span> kernel
    configuration file includes the <code class="Dv">PAE</code> option, and
    explicitly excludes all device drivers which are known to not work or have
    not been tested in a system with the <code class="Dv">PAE</code> option and
    more than 4 gigabytes of memory.</p>
<p class="Pp">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
    <code class="Dv">KVA_PAGES</code> option may be used to increase the kernel
    virtual address space, and the <var class="Va">kern.maxvnodes</var>
    <a class="Xr">sysctl(8)</a> 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 <a class="Xr">tuning(7)</a> manual page, and
    make adjustments to the parameters documented there.</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">April 8, 2003</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>