Blog
Virtualization
::VMWare DMA memory starvation for Linux 64bit os:: | ::VMWare DMA memory starvation for Linux 64bit os:: |
|
|
|
| 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.
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. 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:" 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> |
|---|