AFAIK, which could be wrong:
The kernel lives in the last GB of the 4GB virtual memory space of a 32
bit processor. It is always present there out of performance reasons
(saving you from throwing away translations for kernel virtual to
physical addresses on every context switch in supervisor mode).
For the kernel to access memory on a 32-bit proc, the first 896 MB of
RAM are mapped into the start of the kernel memory space. If it wants to
refer to map further memory (which is quite possible today), it needs to
map them in by a window in the remaining 128 MB of memory. This is the
so-called High Memory. This obviously isn't as fast.
There are two fixes for 32-bit procs:
* Extend the kernel space to 2GB in size
* Replace the current scheme with the 4x4 scheme (4GB user space, 4GB
kernel space, context switches void Address Translation Caches
completely, giving every system call a performance penalty)
I'm not entirely sure what the disadvantages of the 2GB setting are, but
for sure user processes then have 1 GB less of virtual address space
for their own uses, like for shared memory.
Anyone please correct me if I'm wrong, I'm in the learning, too!
With kind regards,
Oliver Korpilla
pavan schrieb:
hello all!!
While i was reading manual for gsx server i found following:
Recompile the kernel as a 2GB kernel by enabling the CONFIG_2GB option
and
either pass the boot-time switch mem=1983M at the LILO prompt or add
it to
lilo.conf
what does this mean by 2GB kernel?
i have 2.4.29 kernel for mandrake?does it not support 2GB RAM?do i
need to make extra settings for kernel.
regards,
pavan.
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/