RHEL4 x86 kernel with more than 4 GB of RAM
Matt Domsch
Matt_Domsch at dell.com
Sat Aug 20 13:48:42 CDT 2005
On Sat, Aug 20, 2005 at 01:22:02AM +0200, Thomas Hornschuh wrote:
>
> >To my surprise, RHEL4 uses the regular 'kernel-smp' package on the
> system and apparently it >>handles all the memory (6 GB) just fine:
>
> I noticed the same for RHEL3 a few weeks ago. I thought I must
> switch to the hugemem kernel with more than 4GB of memory, but this
> it not the case.
> So my question is:
> What is the exact difference between the .ELsmp and the .ELhugemem
> kernel?
>From the RHEL3 RELEASE-NOTES-en file :-)
o Red Hat Enterprise Linux 3 includes a new kernel known as the hugemem
kernel. This kernel supports a 4GB per process user space (versus 3GB
for the other kernels), and a 4GB direct kernel space. Using this
kernel allows Red Hat Enterprise Linux to run on systems with up to
64GB of main memory. The hugemem kernel is required in order to use
all the memory in system configurations containing more than 16GB of
memory. The hugemem kernel can also benefit configurations running
with less memory (if running an application that could benefit from
the larger per process user space, for example.)
To remind you of this issue, the Red Hat Enterprise Linux 3 kernel
displays a message at boot time if your system configuration contains
more than 16GB of memory. After the system has booted, the following
command can be used to see if your system displayed the message:
dmesg | less
NOTE: To provide a 4GB address space for both kernel and user space,
the kernel must maintain two separate virtual memory address mappings.
This introduces overhead when transferring from user to kernel space;
for example, in the case of system calls and interrupts. The impact of
this overhead on overall performance is highly application dependent.
Also note that, because some drivers were not originally written to
work well in large-memory environments, Red Hat only supports a
validated subset of drivers when the hugemem kernel is used. Drivers
that have been validated by Red Hat for use with the hugemem kernel
are contained in the kernel-hugemem package. Drivers that have not
been validated, but are still provided, are available in the
kernel-hugemem-unsupported RPM. To see the list of drivers in these
RPMs, use the following command:
rpm -qlp <kernel-rpm>
(Where < kernel-rpm> is the complete filename of the appropriate
hugemem RPM. Note that these RPMs can be found on CD-ROM #2, in the
RedHat/RPMS/ directory.)
Should you decide that the hugemem kernel's additional overhead and
the subset of available drivers present no problem for your hardware
configuration and system environment, and you wish to use the hugemem
kernel, you must first install it. To install the hugemem kernel,
enter the following command while logged in as root:
rpm -ivh <kernel-rpm>
(Where <kernel-rpm> is the name of the hugemem kernel RPM file --
kernel-hugemem-2.4.21-3.EL.i686.rpm, for example.)
After the installation is complete, reboot your system, making sure to
select the newly-installed hugemem kernel. After testing your system
for proper operation while running the hugemem kernel, you should
modify the /boot/grub/grub.conf file so that the hugemem kernel is
booted by default.
So -hugemem on RHEL3 and RHEL4 is necessary if running with >= 16GB
RAM, or your workload could benefit from the kernel being able to
directly access more than 1GB of RAM, or your user processes being
able to directly access 3-4GB of RAM.
Thanks,
Matt
--
Matt Domsch
Software Architect
Dell Linux Solutions linux.dell.com & www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com
More information about the Linux-PowerEdge
mailing list