Large memory issues on 4-STABLE

Doug White dwhite at gumbysoft.com
Sun Sep 14 22:29:13 PDT 2003


On Mon, 15 Sep 2003, Irvine Short wrote:

> Yes, I understand that. What I am saying is, is that the general story out
> there is that with a 32 bit operatng system no process can address more
> than 4GB of RAM. Fine. David said that in FreeBSD I cannot in practicality
> address more than about 3GB of RAM. Also fine.
>
> However we have a situation where if I set MAXDSIZ to 2048 or above then
> things break, so FreeBSD right now has an effectivce limit of 2GB per
> process.
>
> Is this to be considered a bug or a feature?

I'd have to say feature. The kernel placement and user/kernel boundary
sizing is part of FreeBSD and the 4GB limit for both kernel and user is a
restriction of the processor architecture. Its possible to do some tuning
and crunching and maybe eek out 3GB user addressible space, but thats all
you're going to get.

> Then, with the PAE support, lets say I have 8GB of RAM. Will those same
> design limitations restrict me to 3GB of RAM, or 2GB, or will I be able to
> have a single process addressing 4GB all by itself?

Since you need to have the kernel inside that 4GB space somewhere, and 4GB
of RAM chews up a ton of memory in page tables, I would say no.

PAE is not 64 bit addressing.  PAE is 16 banks of 32 bit address spaces.
("36 bit" == 4 bits of bank and 32 bits of address)  As David said, on the
8GB system you could have two large processes taking up 2.5GB each, but
not one 5GB process.

> This is relevant to the work we're doing - some of my users actually
> really do need this amount of memory.

If this is the case then you should consider a 64 bit architecture, like
ia64, sparc64, or amd64 (Opteron).  On these systems you can allocate as
much memory as you can cram into the system*; 64 bits goes a long way. :)

-- 
Doug White                    |  FreeBSD: The Power to Serve
dwhite at gumbysoft.com          |  www.FreeBSD.org

* There's probably some limits when you start using fractional terabytes
to represent the amount of memory you're using, but such limits would be
surmountable given time and equipment.


More information about the freebsd-stable mailing list