Hardware CPU/MMU Virtualization

April 11, 2015 – 12:49 pm

VMware vSphere ESXi will determine whether or not to use hardware virtualization support based on various factors such as the guest operating system type and the physical hardware. Certain workloads can benefit from explicitly turning hardware virtualization support on or off. If the value is unset, the value will default to hvAuto. Usually it is left to automatic except for specific cases where it’s either not detected or we want to ensure it uses the proper setting.

When specifying the OS type when creating a VM, it lists the preferred modes.

Example from a Windows 2012 R2 server running on an HP Proliant DL385 G7 (AMD Opteron 6282 SE):

Opening the vmware.log in a VM’s datastore folder and searching for MONITOR brought this up:

2015-04-11T16:30:40.910Z| vmx| I120: MONITOR MODE: allowed modes : BT HV HWMMU
2015-04-11T16:30:40.910Z| vmx| I120: MONITOR MODE: user requested modes : BT HV HWMMU
2015-04-11T16:30:40.910Z| vmx| I120: MONITOR MODE: guestOS preferred modes: HWMMU HV BT
2015-04-11T16:30:40.910Z| vmx| I120: MONITOR MODE: filtered list : HWMMU HV BT
2015-04-11T16:30:40.910Z| vmx| I120: HV Settings: virtual exec = ‘hardware’; virtual mmu = ‘hardware’

So basically setting to auto on a Windows 2012 R2 on this host does enable hardware MMU/CPU features, same as if we selected the 4th option.

CPUMMU

Here is a powerCLI script to check the current settings for all VMs :

# Create a new VM object property

New-VIProperty -Name MMUStatus -ObjectType VirtualMachine -ValueFromExtensionProperty 'Config.Flags.VirtualMmuUsage' -Force

New-VIProperty -Name HVStatus -ObjectType VirtualMachine -ValueFromExtensionProperty 'Config.Flags.VirtualExecUsage' -Force

# Get all VMs and return their Name and settings

Get-VM | Sort -Property Name | Select Name, MMUStatus, HVStatus | ft

Post a Comment