Large memory issues on 4-STABLE

Gregory Bond gnb at itga.com.au
Sun Sep 14 22:48:13 PDT 2003


> 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?

It orta work above 2Gb, and has been known to work to about 3Gb.  The fact that
tcsh is reporting "unlimited" is probably a bug in tcsh (signed vs unsigned).

But you can't put a limit on how much above 2Gb will definitely work, because
the kernel's demand for VM space is variable, depending on hardware config, job
mix & current activity.   (The Kernel uses VM space for various data
structures, but the ones that matter most in large RAM machines are the
processes VM page tables etc.)  

So a given MAXDSIZE might work most of the time but fail in interesting ways
when things get hot.  And failing due to out of VM space is not handled very
gracefully at all.  If you're lucky you'll get a panic.....

> 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?

No, the architectural limit is that the kernel and the user program share the
one 32-bit address space, and the kernel typically needs up to 1Gb of it, so no
user process can be bigger than this 3 Gb (or so) limit.  So PAE will not help
at all here (and in fact may make it worse as PAE data structures may be large
than normal ones.)  But with PAE you could have 2 or 3 of these large processes
all RAM-resident at once, if you are willing to buy that much RAM.

Fixing this is basically not going to happen; 64bit CPUs will be standard way
before a project of that magnitude would be finished.

Greg,
not really a kernel hacker.





More information about the freebsd-stable mailing list