[pve-devel] [PATCH] add hyperv enlightments : hv_reset, hv_vpindex, hv_runtime

Alexandre Derumier aderumier at odiso.com
Fri May 20 10:26:08 CEST 2016


add them by default for qemu 2.6
(support is already present in qemu 2.5, but we don't want to break live migration for current running vm)

vpindex && runtime need host kernel 4.4

Theses 3 enlightements are needed by windows to use vmbus
http://searchwindowsserver.techtarget.com/definition/Microsoft-Virtual-Machine-Bus-VMBus

details :

- When Hyper-V "vpindex" is on, guest can use MSR HV_X64_MSR_VP_INDEX
to get virtual processor ID.

- Hyper-V "runtime" enlightement feature allows to use MSR
HV_X64_MSR_VP_RUNTIME to get the time the virtual processor consumes
running guest code, as well as the time the hypervisor spends running
code on behalf of that guest.

- Hyper-V "reset" allows guest to reset VM.

Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 PVE/QemuServer.pm | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 4c0e043..3938c53 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -3047,6 +3047,12 @@ sub config_to_command {
 		push @$cpuFlags , 'hv_vapic' if !$nokvm;
 		push @$cpuFlags , 'hv_time' if !$nokvm;
 
+		if (qemu_machine_feature_enabled ($machine_type, $kvmver, 2, 6)) {
+		    push @$cpuFlags , 'hv_reset' if !$nokvm;
+		    push @$cpuFlags , 'hv_vpindex' if !$nokvm;
+		    push @$cpuFlags , 'hv_runtime' if !$nokvm;
+		}
+
 	    } else {
 		push @$cpuFlags , 'hv_spinlocks=0xffff' if !$nokvm;
 	    }
-- 
2.1.4




More information about the pve-devel mailing list