> The Linux 32-bit kernel supports PAE (the extension that allows
> access to more than 3GB RAM).  

Actually, PAE is an MMU feature providing an additional 4 bits
of physical address to be specified in the page table entries;
this allows the kernel to rig the page tables such that they can
address more than the 4Gb that they'd normally be restricted to when
using only 32bit addresses, but at the cost of an extra level of
indirection in the page tables and a measurable performance penalty.

IIRC, PAE is not necessary until you want to address *more* than
4Gb of RAM, though I have a nagging, fragmentary memory that some
other issue (maybe related to PCI mappings or other I/O stuff?)
can make PAE advisable even when you don't have more than 4Gb.

The 3Gb limit you may be thinking of (associated with one of several
possible "splits" of user Virtual Memory) is the constraint in
standard 32bit kernels where (for performance reasons related to
not wanting to incur TLB flushes with every trap/interrupt/syscall)
the kernel owns the top 1/4 (ie.  1Gb) of every process's virtual
address space, leaving only the lower 3Gb of virtual address space
for user mode code.  Note: this 3Gb issue is orthogonal to PAE.

There used to be a config option that made a full 4GB of virtual
address space available to every process by forcing the kernel to use
its own page tables; support for this capability has been deprecated,
apparently based on the attitude that anybody who wants more than
3Gb virtual address space should be running a 64bit OS, a rather
condescending stance IMO.

_______________________________________________
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/

Reply via email to