[pve-devel] [PATCH] add hyperv enlightments : hv_reset, hv_vpindex, hv_runtime
Alexandre DERUMIER
aderumier at odiso.com
Fri May 20 11:24:41 CEST 2016
Alexandre Derumier
Ingénieur système et stockage
Manager Infrastructure
Fixe : +33 3 59 82 20 10
125 Avenue de la république
59110 La Madeleine
MonSiteEstLent.com - Blog dédié à la webperformance et la gestion de pics de trafic
----- Mail original -----
De: "Thomas Lamprecht" <t.lamprecht at proxmox.com>
À: "pve-devel" <pve-devel at pve.proxmox.com>
Envoyé: Vendredi 20 Mai 2016 10:59:28
Objet: Re: [pve-devel] [PATCH] add hyperv enlightments : hv_reset, hv_vpindex, hv_runtime
On 05/20/2016 10:26 AM, Alexandre Derumier wrote:
> 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.
Here is a CVE still open affecting Hyper-v Synthetic Interrupt
Controller(SynIC) support:
CVE-2016-4440 Kernel: kvm: vmx: incorrect state update leading to MSR access
We should probably fix that before enabling this, although as we do not
have qemu 2.6 in the repos
and so this feature isn't yet available (except for user who build qemu
them self :)) that
isn't a problem yet and until then we will have the CVE fixed (doesn't
affects us yet, AFAIK).
>
> - 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;
> + }
> +
Would it make sense to enable this only if the VM OS is windows?
> } else {
> push @$cpuFlags , 'hv_spinlocks=0xffff' if !$nokvm;
> }
_______________________________________________
pve-devel mailing list
pve-devel at pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list