losalamos.redhawk.org

Sep 06, 2010 at 09:24 PM
Home arrow Blog arrow Virtualization arrow ::VMWare DMA memory starvation for Linux 64bit os::
::VMWare DMA memory starvation for Linux 64bit os:: PDF Print E-mail
Contributed by W.R.Welty   
Jun 13, 2007 at 01:35 PM
Under ESX and Server if you tune out things like vm.min_free_kbytes in a 2.6 linux kernel, (RHEL4/5) above 4% of memory you will likely get the oom kill out of memory panic. This is because the vmware guest bios caps the dma pool, yes dma not iommu, here is how to get around that.Image

VMWareBios

VMWare uses a very old bios for the guest virtual machines. This implements i/o controls via DMA instead of IOMMU like most Opteron based hardware does. Simulating the DMA is not a bad thing in and of itself, but this bios had the memory hole problem in order to support extremely old operating systems such as Windows 95. To prevent out of memory (OOM kill) problems in SMP linux installations you MUST change the bios and enable the memory hole to address extended memory.

This can be done via the following procedure.

1. Enter the bios for the Guest VM.
Do this when you boot the guest by pressing F2 at the initial boot screen prior to the grub menu.

2. Cursor over to the "Advanced" tab.

3. Cursor down to "Advanced Chipset Control" and press Enter.

4. The first item should be "Enable memory gap:"
This should be by default set to "Disabled".

5. Cursor to if if not highlighted, press Enter and select "Extended".

6. Save and exit.

If not using the serial, paralell ports or the floppy you can remove from the bios. This will reduce i/o in the VM's as well as reducing the DMA memory allocation.

Last Updated ( Oct 01, 2007 at 02:57 PM )
<Previous   Next>