Ask a Question related to FreeBSD, Design and Development.
-
O. Hartmann #1
Kernel/Userland Mem-Space Tuning (1/3 on IA32)
Hello.
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.
Thanks, Oliver
O. Hartmann Guest
-
Userland Frontier Interoperability
Newbie question here, so please bear with me as I'm sure this has cropped up before. I'm trying to develop a Proxy Client than connects to a... -
[PHP-DEV] userland macros
Is possible to implement userland macros in a PHP extension or it can only be implemented in the core? I know that macros is a preprocessor task... -
kernel-source versus kernel-patch
Hi, The description of the kernel-source-2.4.21 package says "Linux kernel source for version 2.4.21 with Debian patches". But, there is another... -
Access kernel mem from user space
Hello all: Hang in there, I am a EE first and a Linux guy second, but I've had to do some Solaris driver development and would like a hand. I... -
IA32 *NIX ABI reference?
Is there a place one could find the ABIs for the various UNIX and UNIX-like operating systems like *BSD and Linux respectively? I tried Googling... -
David G. Lawrence #2
Re: Kernel/Userland Mem-Space Tuning (1/3 on IA32)
> Hello.
FreeBSD divides the 32bit virtual address space with 1GB for the kernel> 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.
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).
-DG
David G. Lawrence
President
Download Technologies, Inc. - [url]http://www.downloadtech.com[/url] - (866) 399 8500
TeraSolutions, Inc. - [url]http://www.terasolutions.com[/url] - (888) 346 7175
The FreeBSD Project - [url]http://www.freebsd.org[/url]
Pave the road of life with opportunities.
David G. Lawrence Guest
-
O. Hartmann #3
Re: Kernel/Userland Mem-Space Tuning (1/3 on IA32)
David G. Lawrence wrote:
Dear David.>>>Hello.
>>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).
>
>-DG
>
>David G. Lawrence
>President
>Download Technologies, Inc. - [url]http://www.downloadtech.com[/url] - (866) 399 8500
>TeraSolutions, Inc. - [url]http://www.terasolutions.com[/url] - (888) 346 7175
>The FreeBSD Project - [url]http://www.freebsd.org[/url]
>Pave the road of life with opportunities.
>
>
Thank you very much.
I assumed FreeBSD do the same like Linux, but don't obviously.
I found a lot of tweaking kernel parameters,
KVA_PAGES
VM_KMEM_SIZE_SCALE
VM_KMEM_SIZE_MAX
VM_KMEM_SIZE
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 ...
Thanks
Oliver
O. Hartmann Guest
-
David G. Lawrence #4
Re: Kernel/Userland Mem-Space Tuning (1/3 on IA32)
> >>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).The last three are not related to the address space division and you> 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,
> KVA_PAGES
> VM_KMEM_SIZE_SCALE
> VM_KMEM_SIZE_MAX
> VM_KMEM_SIZE
should not change those under normal circumstance.
It's a 1:4 ratio.> 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.
It's the number of page table pages that are assigned to the kernel> 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 ...
address space. Each page maps 4MB, so 256 (the default) provides for
1GB of kernel virtual address space, leaving 3GB for user space.
-DG
David G. Lawrence
President
Download Technologies, Inc. - [url]http://www.downloadtech.com[/url] - (866) 399 8500
TeraSolutions, Inc. - [url]http://www.terasolutions.com[/url] - (888) 346 7175
The FreeBSD Project - [url]http://www.freebsd.org[/url]
Pave the road of life with opportunities.
David G. Lawrence Guest
-
O. Hartmann #5
Re: Kernel/Userland Mem-Space Tuning (1/3 on IA32)
David G. Lawrence wrote:
Sorry, I meant 1GB kernel, 3GB userland or 2GB kernel, 2GB userland, 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).
>>>
>>>
>
>>>>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,
>>KVA_PAGES
>>VM_KMEM_SIZE_SCALE
>>VM_KMEM_SIZE_MAX
>>VM_KMEM_SIZE
>>
>>
> The last three are not related to the address space division and you
>should not change those under normal circumstance.
>
>
>>>>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.
>>
>>
> It's a 1:4 ratio.
>
>
the divisor or
mathematical ratio, sorry for this unprecise.
Many thanks, that helped a lot!>
>
>>>>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 ...
>>
>>
> It's the number of page table pages that are assigned to the kernel
>address space. Each page maps 4MB, so 256 (the default) provides for
>1GB of kernel virtual address space, leaving 3GB for user space.
>
>
Oliver
O. Hartmann Guest



Reply With Quote

