qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 1/1] hyperv: cpu hotplug fix with HyperV enab


From: Eduardo Habkost
Subject: Re: [Qemu-devel] [PATCH v3 1/1] hyperv: cpu hotplug fix with HyperV enabled
Date: Tue, 8 Mar 2016 14:51:50 -0300
User-agent: Mutt/1.5.23 (2014-03-12)

On Tue, Mar 01, 2016 at 04:45:02PM +0300, Denis V. Lunev wrote:
> On 02/22/2016 12:13 PM, Denis V. Lunev wrote:
> >With Hyper-V enabled CPU hotplug stops working. The CPU appears in device
> >manager on Windows but does not appear in peformance monitor and control
> >panel.
> >
> >The root of the problem is the following. Windows checks
> >HV_X64_CPU_DYNAMIC_PARTITIONING_AVAILABLE bit in CPUID. The presence of
> >this bit is enough to cure the situation.
> >
> >The bit should be set when CPU hotplug is allowed for HyperV VM. The check
> >that hot_add_cpu callback is defined is enough from the protocol point
> >of view. Though this callback is defined almost always thus there is no
> >need to export that knowledge in the other way.
> >
> >Signed-off-by: Denis V. Lunev <address@hidden>
> >Reviewed-by: Roman Kagan <address@hidden>
> >CC: Paolo Bonzini <address@hidden>
> >CC: Richard Henderson <address@hidden>
> >CC: Eduardo Habkost <address@hidden>
> >CC: "Andreas Färber" <address@hidden>
> >---
> >Changes from v2:
> >- bit set unconditionally upon the discussion
> >
> >Changes from v1:
> >- dropped command line option and set the bit if HyperV is enabled and
> >   hot_add_cpu callback is present
> >
> >  target-i386/kvm.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> >diff --git a/target-i386/kvm.c b/target-i386/kvm.c
> >index 7974acb..08d6444 100644
> >--- a/target-i386/kvm.c
> >+++ b/target-i386/kvm.c
> >@@ -639,6 +639,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
> >          if (cpu->hyperv_crash && has_msr_hv_crash) {
> >              c->edx |= HV_X64_GUEST_CRASH_MSR_AVAILABLE;
> >          }
> >+        c->edx |= HV_X64_CPU_DYNAMIC_PARTITIONING_AVAILABLE;
> >          if (cpu->hyperv_reset && has_msr_hv_reset) {
> >              c->eax |= HV_X64_MSR_RESET_AVAILABLE;
> >          }
> ping

Reviewed-by: Eduardo Habkost <address@hidden>

Applied to x86 branch.

Thanks!

-- 
Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]