Kernel/Userland Mem-Space Tuning (1/3 on IA32)

O. Hartmann ohartman at
Sun Feb 27 15:38:51 GMT 2005

David G. Lawrence wrote:

>>I read about address space division of recent operating systems like 
>>Linux and Windows XP.
>>In both cases, the whole address space of the 32 or 64 Bit system is 
>>divided into halfes, 2GB for
>>kernel, 2 GB for process(es) (speaking in 32Bit words). The same in 
>>64bit systems like AMD64.
>>Those who happily utilize an AMD64 based machine are not (yet) involved 
>>by this problem,
>>but on recent 32 Bit architectures someone can run out of process space, 
>>like me! Some
>>geophysical modelling software needs more than the allowed 2GB address 
>>space and therefore
>>I would like to ask whether FreeBSD (my preferred OS) has a 'knob' to 
>>change the kernel/userland parity
>>of the address space like it is done in Windows with a special knob at 
>>boot time (/W3GB I think, but I'm not
>>sure about the exakt syntax but I know someone can change the half by 
>>half parity towards 1 to 3 in
>>XP). I'm not sure whether FreeBSD divides kernel/userland address space 
>>this way, I know Linux and
>>Windows does and on Windows we changed this (not yet on Linux and not 
>>yet on our FreeBSD machines
>>(OS version >5.0, mostly FreeBSD 5.3-R or 5.4-PRERELEASE).
>>Any help is appreciated.
>   FreeBSD divides the 32bit virtual address space with 1GB for the kernel
>and 3GB for user processes. This can be changed with some kernel compile-
>time constants (primarily KVA_PAGES, however NKPT may also need to be
>increased if the kernel address space is increased).
>David G. Lawrence
>Download Technologies, Inc. - - (866) 399 8500
>TeraSolutions, Inc. - - (888) 346 7175
>The FreeBSD Project -
>Pave the road of life with opportunities.
Dear David.
Thank you very much.
I assumed FreeBSD do the same like Linux, but don't obviously.

I found a lot of tweaking kernel parameters,

Reading some comments  in sys/kern/kern_malloc.c make be a bit confused, 
I do not know much about kernel's interna.

It is nice to hear that FreeBSD do a 1/3 division, I expected a 2/2 
division like Linux does. So no need for anything changing.

Can someone please explain NKPT? I'm simply curious, didn't found a 
satisfying answer via google, but a lot of source code with this in ...



More information about the freebsd-questions mailing list