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