VM Feature Identification
When you control your own hypervisor, you are aware of the features you are using, since you have configured the system and the VMs. However, if you are using a service provider for your hosting or cloud, you need to do some detective work to determine the hypervisor mode and features employed.
The output of the dmesg command contains many useful bits of information about the processor mode:
If your VM is either HVM or PVHVM, look for:
[ 0.000000] Hypervisor detected: Xen HVM
[ 0.000000] Booting paravirtualized kernel on Xen HVM
If it is actually PVHVM, you could see messages like:
[ 0.127240] Xen: using vcpuop timer interface
[ 1.424040] Initialising Xen virtual ethernet driver.
[ 0.000000] Xen HVM callback vector for event delivery is enabled
indicating that PV drivers are being utilized within the HVM machine.
Also, some newer versions might have:
[ 0.000000] xen: PV spinlocks enabled
indicating that PV spinlocks are used, so an HVM VM with this message must be PVHVM.
If your VM is PV or PVH, look for:
[ 0.000000] Booting paravirtualized kernel on Xen
Note the lack of reference to HVM, as seen in the messages above.
This message indicates that PV timers are in use:
[ 0.000000] Xen: using vcpuop timer interface
If PV network drivers are in use, you might see:
[ 0.432488] Initialising Xen virtual ethernet driver.
- Disk names: names in the format xvdXN (e.g., xvda1, or xvdc3) indicates that the PV disk driver is in use.
- Network drivers: a network driver of vif is a PV driver
- A truly great article by Brendan Gregg