How to enable Virtual Machine Interface (VMI) in a Linux kernel and in ESX Server 3.5
Details
VMware ESX Server 3.5 includes support for operating system kernels that use Virtual Machine Interface (VMI). VMI is the VMware open paravirtualization interface and is included in Linux kernel version 2.6.22 and later. To use VMI, it must be enabled in your Linux kernel and for the ESX Server 3.5 virtual machine in which that kernel is running.
Solution
Enabling VMI in a Linux Kernel
To enable VMI in your custom Linux kernel, enable the CONFIG_PARAVIRT and CONFIG_VMI options in the kernel config file, as illustrated in Figure 1.
A kernel compiled with VMI support can be run on native hardware or on a virtual machine. On native hardware or on a virtual machine where VMI is not enabled, the kernel functions like a regular kernel. On a virtual machine with VMI enabled, the kernel offers improved performance through its paravirtualization interface.
Enabling VMI in VMware ESX Server 3.5
In ESX Server 3.5, each virtual machine can have VMI either enabled or disabled. To enable VMI for a particular virtual machine, on the Summarytab for that virtual machine, click Edit Settings, select the Options tab, click Paravirtualization, and make sure Support VMI Paravirtualization is checked, as illustrated in Figure 2.
Figure 2: VMI Paravirtualization Option in VMware ESX Server 3.5
When VMI is enabled in the virtual machine settings, the lspci output in the guest operating system includes a new PCI device (identified as a Memory controller), as illustrated in Figure 3.
Figure 3: VMI PCI Device (identified as a Memory controller) in lspci Output
Note: The VMI PCI device, like other virtual PCI devices, takes up a virtual PCI slot.
The presence of the VMI device in the lspci output, however, does not confirm that the guest operating system is running in VMI mode. The dmesg output shown in Figure 4 confirms VMI mode, indicating that VMI is enabled in the virtual machine settings as well as in the Linux kernel.
Figure 4: Output From dmesg Confirming VMI Mode
Note: VMI-enabled kernels are included in some Linux distributions. Check with your Linux vendor to see if they have a VMI-enabled kernel available.