qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 1/1] hyperv: cpu hotplug fix with HyperV enabled
@ 2016-02-11 20:19 Denis V. Lunev
  2016-02-12 11:00 ` Andreas Färber
  0 siblings, 1 reply; 6+ messages in thread
From: Denis V. Lunev @ 2016-02-11 20:19 UTC (permalink / raw)
  Cc: Eduardo Habkost, qemu-devel, Paolo Bonzini, Alexey V. Kostyushko,
	Denis V. Lunev, Andreas Färber, Richard Henderson

From: "Alexey V. Kostyushko" <aleksko@virtuozzo.com>

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.

Add option 'hv-cpuhotplug' to control this behavior.

Signed-off-by: Alexey V. Kostyushko <aleksko@virtuozzo.com>
Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Richard Henderson <rth@twiddle.net>
CC: Eduardo Habkost <ehabkost@redhat.com>
CC: "Andreas Färber" <afaerber@suse.de>
---
 target-i386/cpu-qom.h | 1 +
 target-i386/cpu.c     | 1 +
 target-i386/kvm.c     | 6 +++++-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/target-i386/cpu-qom.h b/target-i386/cpu-qom.h
index 5f9d960..4aec616 100644
--- a/target-i386/cpu-qom.h
+++ b/target-i386/cpu-qom.h
@@ -96,6 +96,7 @@ typedef struct X86CPU {
     bool hyperv_runtime;
     bool hyperv_synic;
     bool hyperv_stimer;
+    bool hyperv_cpuhotplug;
     bool check_cpuid;
     bool enforce_cpuid;
     bool expose_kvm;
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index b255644..32c38ae 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -3172,6 +3172,7 @@ static Property x86_cpu_properties[] = {
     DEFINE_PROP_BOOL("hv-runtime", X86CPU, hyperv_runtime, false),
     DEFINE_PROP_BOOL("hv-synic", X86CPU, hyperv_synic, false),
     DEFINE_PROP_BOOL("hv-stimer", X86CPU, hyperv_stimer, false),
+    DEFINE_PROP_BOOL("hv-cpuhotplug", X86CPU, hyperv_cpuhotplug, false),
     DEFINE_PROP_BOOL("check", X86CPU, check_cpuid, true),
     DEFINE_PROP_BOOL("enforce", X86CPU, enforce_cpuid, false),
     DEFINE_PROP_BOOL("kvm", X86CPU, expose_kvm, true),
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 94024bc..f4692b9 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -529,7 +529,8 @@ static bool hyperv_enabled(X86CPU *cpu)
             cpu->hyperv_vpindex ||
             cpu->hyperv_runtime ||
             cpu->hyperv_synic ||
-            cpu->hyperv_stimer);
+            cpu->hyperv_stimer ||
+            cpu->hyperv_cpuhotplug);
 }
 
 static int kvm_arch_set_tsc_khz(CPUState *cs)
@@ -636,6 +637,9 @@ int kvm_arch_init_vcpu(CPUState *cs)
             c->eax |= 0x200;
             has_msr_hv_tsc = true;
         }
+        if (cpu->hyperv_cpuhotplug) {
+            c->edx |= HV_X64_CPU_DYNAMIC_PARTITIONING_AVAILABLE;
+        }
         if (cpu->hyperv_crash && has_msr_hv_crash) {
             c->edx |= HV_X64_GUEST_CRASH_MSR_AVAILABLE;
         }
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH 1/1] hyperv: cpu hotplug fix with HyperV enabled
  2016-02-11 20:19 [Qemu-devel] [PATCH 1/1] hyperv: cpu hotplug fix with HyperV enabled Denis V. Lunev
@ 2016-02-12 11:00 ` Andreas Färber
  2016-02-12 11:08   ` Denis V. Lunev
  0 siblings, 1 reply; 6+ messages in thread
From: Andreas Färber @ 2016-02-12 11:00 UTC (permalink / raw)
  To: Denis V. Lunev
  Cc: Alexey V. Kostyushko, Paolo Bonzini, qemu-devel, Eduardo Habkost,
	Richard Henderson

Am 11.02.2016 um 21:19 schrieb Denis V. Lunev:
> From: "Alexey V. Kostyushko" <aleksko@virtuozzo.com>
> 
> 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.
> 
> Add option 'hv-cpuhotplug' to control this behavior.
> 
> Signed-off-by: Alexey V. Kostyushko <aleksko@virtuozzo.com>
> Signed-off-by: Denis V. Lunev <den@openvz.org>
> CC: Paolo Bonzini <pbonzini@redhat.com>
> CC: Richard Henderson <rth@twiddle.net>
> CC: Eduardo Habkost <ehabkost@redhat.com>
> CC: "Andreas Färber" <afaerber@suse.de>
> ---
>  target-i386/cpu-qom.h | 1 +
>  target-i386/cpu.c     | 1 +
>  target-i386/kvm.c     | 6 +++++-
>  3 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/target-i386/cpu-qom.h b/target-i386/cpu-qom.h
> index 5f9d960..4aec616 100644
> --- a/target-i386/cpu-qom.h
> +++ b/target-i386/cpu-qom.h
> @@ -96,6 +96,7 @@ typedef struct X86CPU {
>      bool hyperv_runtime;
>      bool hyperv_synic;
>      bool hyperv_stimer;
> +    bool hyperv_cpuhotplug;
>      bool check_cpuid;
>      bool enforce_cpuid;
>      bool expose_kvm;
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index b255644..32c38ae 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -3172,6 +3172,7 @@ static Property x86_cpu_properties[] = {
>      DEFINE_PROP_BOOL("hv-runtime", X86CPU, hyperv_runtime, false),
>      DEFINE_PROP_BOOL("hv-synic", X86CPU, hyperv_synic, false),
>      DEFINE_PROP_BOOL("hv-stimer", X86CPU, hyperv_stimer, false),
> +    DEFINE_PROP_BOOL("hv-cpuhotplug", X86CPU, hyperv_cpuhotplug, false),

Is "cpuhotplug" some fixed HyperV name? Otherwise we generally use a
dashes convention for QOM properties, i.e. "hv-cpu-hotplug".

Regards,
Andreas

>      DEFINE_PROP_BOOL("check", X86CPU, check_cpuid, true),
>      DEFINE_PROP_BOOL("enforce", X86CPU, enforce_cpuid, false),
>      DEFINE_PROP_BOOL("kvm", X86CPU, expose_kvm, true),
[snip]

-- 
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton; HRB 21284 (AG Nürnberg)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH 1/1] hyperv: cpu hotplug fix with HyperV enabled
  2016-02-12 11:00 ` Andreas Färber
@ 2016-02-12 11:08   ` Denis V. Lunev
  2016-02-12 11:13     ` Andreas Färber
  0 siblings, 1 reply; 6+ messages in thread
From: Denis V. Lunev @ 2016-02-12 11:08 UTC (permalink / raw)
  To: Andreas Färber
  Cc: Alexey V. Kostyushko, Paolo Bonzini, qemu-devel, Eduardo Habkost,
	Richard Henderson

On 02/12/2016 02:00 PM, Andreas Färber wrote:
> Am 11.02.2016 um 21:19 schrieb Denis V. Lunev:
>> From: "Alexey V. Kostyushko" <aleksko@virtuozzo.com>
>>
>> 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.
>>
>> Add option 'hv-cpuhotplug' to control this behavior.
>>
>> Signed-off-by: Alexey V. Kostyushko <aleksko@virtuozzo.com>
>> Signed-off-by: Denis V. Lunev <den@openvz.org>
>> CC: Paolo Bonzini <pbonzini@redhat.com>
>> CC: Richard Henderson <rth@twiddle.net>
>> CC: Eduardo Habkost <ehabkost@redhat.com>
>> CC: "Andreas Färber" <afaerber@suse.de>
>> ---
>>   target-i386/cpu-qom.h | 1 +
>>   target-i386/cpu.c     | 1 +
>>   target-i386/kvm.c     | 6 +++++-
>>   3 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/target-i386/cpu-qom.h b/target-i386/cpu-qom.h
>> index 5f9d960..4aec616 100644
>> --- a/target-i386/cpu-qom.h
>> +++ b/target-i386/cpu-qom.h
>> @@ -96,6 +96,7 @@ typedef struct X86CPU {
>>       bool hyperv_runtime;
>>       bool hyperv_synic;
>>       bool hyperv_stimer;
>> +    bool hyperv_cpuhotplug;
>>       bool check_cpuid;
>>       bool enforce_cpuid;
>>       bool expose_kvm;
>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
>> index b255644..32c38ae 100644
>> --- a/target-i386/cpu.c
>> +++ b/target-i386/cpu.c
>> @@ -3172,6 +3172,7 @@ static Property x86_cpu_properties[] = {
>>       DEFINE_PROP_BOOL("hv-runtime", X86CPU, hyperv_runtime, false),
>>       DEFINE_PROP_BOOL("hv-synic", X86CPU, hyperv_synic, false),
>>       DEFINE_PROP_BOOL("hv-stimer", X86CPU, hyperv_stimer, false),
>> +    DEFINE_PROP_BOOL("hv-cpuhotplug", X86CPU, hyperv_cpuhotplug, false),
> Is "cpuhotplug" some fixed HyperV name? Otherwise we generally use a
> dashes convention for QOM properties, i.e. "hv-cpu-hotplug".
>
> Regards,
> Andreas
This name is for libvirt. We can take one one. This is not a problem.

Roman Kagan has proposed verbally a bit different approach.
He suggests not to introduce the option but
check here that HyperV is enabled (any single option is enough
to face the problem) and CPU hotplug is enabled and automatically
enable this bit.

Paolo, Andreas, is there any opinion on this?

As far as I can see for the time being we lend such decisions to
libvirt. But this bit does not require any processing.

Den

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH 1/1] hyperv: cpu hotplug fix with HyperV enabled
  2016-02-12 11:08   ` Denis V. Lunev
@ 2016-02-12 11:13     ` Andreas Färber
  2016-02-12 11:27       ` Denis V. Lunev
  0 siblings, 1 reply; 6+ messages in thread
From: Andreas Färber @ 2016-02-12 11:13 UTC (permalink / raw)
  To: Denis V. Lunev
  Cc: Alexey V. Kostyushko, Paolo Bonzini, qemu-devel, Eduardo Habkost,
	Richard Henderson

Am 12.02.2016 um 12:08 schrieb Denis V. Lunev:
> On 02/12/2016 02:00 PM, Andreas Färber wrote:
>> Am 11.02.2016 um 21:19 schrieb Denis V. Lunev:
>>> From: "Alexey V. Kostyushko" <aleksko@virtuozzo.com>
>>>
>>> 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.
>>>
>>> Add option 'hv-cpuhotplug' to control this behavior.
>>>
>>> Signed-off-by: Alexey V. Kostyushko <aleksko@virtuozzo.com>
>>> Signed-off-by: Denis V. Lunev <den@openvz.org>
>>> CC: Paolo Bonzini <pbonzini@redhat.com>
>>> CC: Richard Henderson <rth@twiddle.net>
>>> CC: Eduardo Habkost <ehabkost@redhat.com>
>>> CC: "Andreas Färber" <afaerber@suse.de>
>>> ---
>>>   target-i386/cpu-qom.h | 1 +
>>>   target-i386/cpu.c     | 1 +
>>>   target-i386/kvm.c     | 6 +++++-
>>>   3 files changed, 7 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/target-i386/cpu-qom.h b/target-i386/cpu-qom.h
>>> index 5f9d960..4aec616 100644
>>> --- a/target-i386/cpu-qom.h
>>> +++ b/target-i386/cpu-qom.h
>>> @@ -96,6 +96,7 @@ typedef struct X86CPU {
>>>       bool hyperv_runtime;
>>>       bool hyperv_synic;
>>>       bool hyperv_stimer;
>>> +    bool hyperv_cpuhotplug;
>>>       bool check_cpuid;
>>>       bool enforce_cpuid;
>>>       bool expose_kvm;
>>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
>>> index b255644..32c38ae 100644
>>> --- a/target-i386/cpu.c
>>> +++ b/target-i386/cpu.c
>>> @@ -3172,6 +3172,7 @@ static Property x86_cpu_properties[] = {
>>>       DEFINE_PROP_BOOL("hv-runtime", X86CPU, hyperv_runtime, false),
>>>       DEFINE_PROP_BOOL("hv-synic", X86CPU, hyperv_synic, false),
>>>       DEFINE_PROP_BOOL("hv-stimer", X86CPU, hyperv_stimer, false),
>>> +    DEFINE_PROP_BOOL("hv-cpuhotplug", X86CPU, hyperv_cpuhotplug,
>>> false),
>> Is "cpuhotplug" some fixed HyperV name? Otherwise we generally use a
>> dashes convention for QOM properties, i.e. "hv-cpu-hotplug".
>>
>> Regards,
>> Andreas
> This name is for libvirt. We can take one one. This is not a problem.
> 
> Roman Kagan has proposed verbally a bit different approach.
> He suggests not to introduce the option but
> check here that HyperV is enabled (any single option is enough
> to face the problem) and CPU hotplug is enabled and automatically
> enable this bit.
> 
> Paolo, Andreas, is there any opinion on this?

That implicit proposal sounds even more appealing to me, yes.

You could still additionally do a dynamic property though, in case you
want to inspect or toggle it at runtime (no clue when Windows reads it).

Andreas

> As far as I can see for the time being we lend such decisions to
> libvirt. But this bit does not require any processing.
> 
> Den


-- 
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton; HRB 21284 (AG Nürnberg)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH 1/1] hyperv: cpu hotplug fix with HyperV enabled
  2016-02-12 11:13     ` Andreas Färber
@ 2016-02-12 11:27       ` Denis V. Lunev
  2016-02-12 14:42         ` Igor Mammedov
  0 siblings, 1 reply; 6+ messages in thread
From: Denis V. Lunev @ 2016-02-12 11:27 UTC (permalink / raw)
  To: Andreas Färber
  Cc: Alexey V. Kostyushko, Paolo Bonzini, qemu-devel, Eduardo Habkost,
	Richard Henderson

On 02/12/2016 02:13 PM, Andreas Färber wrote:
> Am 12.02.2016 um 12:08 schrieb Denis V. Lunev:
>> On 02/12/2016 02:00 PM, Andreas Färber wrote:
>>> Am 11.02.2016 um 21:19 schrieb Denis V. Lunev:
>>>> From: "Alexey V. Kostyushko" <aleksko@virtuozzo.com>
>>>>
>>>> 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.
>>>>
>>>> Add option 'hv-cpuhotplug' to control this behavior.
>>>>
>>>> Signed-off-by: Alexey V. Kostyushko <aleksko@virtuozzo.com>
>>>> Signed-off-by: Denis V. Lunev <den@openvz.org>
>>>> CC: Paolo Bonzini <pbonzini@redhat.com>
>>>> CC: Richard Henderson <rth@twiddle.net>
>>>> CC: Eduardo Habkost <ehabkost@redhat.com>
>>>> CC: "Andreas Färber" <afaerber@suse.de>
>>>> ---
>>>>    target-i386/cpu-qom.h | 1 +
>>>>    target-i386/cpu.c     | 1 +
>>>>    target-i386/kvm.c     | 6 +++++-
>>>>    3 files changed, 7 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/target-i386/cpu-qom.h b/target-i386/cpu-qom.h
>>>> index 5f9d960..4aec616 100644
>>>> --- a/target-i386/cpu-qom.h
>>>> +++ b/target-i386/cpu-qom.h
>>>> @@ -96,6 +96,7 @@ typedef struct X86CPU {
>>>>        bool hyperv_runtime;
>>>>        bool hyperv_synic;
>>>>        bool hyperv_stimer;
>>>> +    bool hyperv_cpuhotplug;
>>>>        bool check_cpuid;
>>>>        bool enforce_cpuid;
>>>>        bool expose_kvm;
>>>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
>>>> index b255644..32c38ae 100644
>>>> --- a/target-i386/cpu.c
>>>> +++ b/target-i386/cpu.c
>>>> @@ -3172,6 +3172,7 @@ static Property x86_cpu_properties[] = {
>>>>        DEFINE_PROP_BOOL("hv-runtime", X86CPU, hyperv_runtime, false),
>>>>        DEFINE_PROP_BOOL("hv-synic", X86CPU, hyperv_synic, false),
>>>>        DEFINE_PROP_BOOL("hv-stimer", X86CPU, hyperv_stimer, false),
>>>> +    DEFINE_PROP_BOOL("hv-cpuhotplug", X86CPU, hyperv_cpuhotplug,
>>>> false),
>>> Is "cpuhotplug" some fixed HyperV name? Otherwise we generally use a
>>> dashes convention for QOM properties, i.e. "hv-cpu-hotplug".
>>>
>>> Regards,
>>> Andreas
>> This name is for libvirt. We can take one one. This is not a problem.
>>
>> Roman Kagan has proposed verbally a bit different approach.
>> He suggests not to introduce the option but
>> check here that HyperV is enabled (any single option is enough
>> to face the problem) and CPU hotplug is enabled and automatically
>> enable this bit.
>>
>> Paolo, Andreas, is there any opinion on this?
> That implicit proposal sounds even more appealing to me, yes.
>
> You could still additionally do a dynamic property though, in case you
> want to inspect or toggle it at runtime (no clue when Windows reads it).
no. this will not work. I should setup CPUID at the beginning
(before boot) and keep it persistent. Thus either option
coming from libvirt or this bit would be automatically
calculated by QEMU.

I'll check that we could create read-only property to export
the value.

OK. I'll redo this tomorrow if nobody will explicitly say 'no'
today :)

Den

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH 1/1] hyperv: cpu hotplug fix with HyperV enabled
  2016-02-12 11:27       ` Denis V. Lunev
@ 2016-02-12 14:42         ` Igor Mammedov
  0 siblings, 0 replies; 6+ messages in thread
From: Igor Mammedov @ 2016-02-12 14:42 UTC (permalink / raw)
  To: Denis V. Lunev
  Cc: Eduardo Habkost, qemu-devel, Alexey V. Kostyushko, Paolo Bonzini,
	Andreas Färber, Richard Henderson

On Fri, 12 Feb 2016 14:27:25 +0300
"Denis V. Lunev" <den@openvz.org> wrote:

> On 02/12/2016 02:13 PM, Andreas Färber wrote:
> > Am 12.02.2016 um 12:08 schrieb Denis V. Lunev:  
> >> On 02/12/2016 02:00 PM, Andreas Färber wrote:  
> >>> Am 11.02.2016 um 21:19 schrieb Denis V. Lunev:  
> >>>> From: "Alexey V. Kostyushko" <aleksko@virtuozzo.com>
> >>>>
> >>>> 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.
> >>>>
> >>>> Add option 'hv-cpuhotplug' to control this behavior.
> >>>>
> >>>> Signed-off-by: Alexey V. Kostyushko <aleksko@virtuozzo.com>
> >>>> Signed-off-by: Denis V. Lunev <den@openvz.org>
> >>>> CC: Paolo Bonzini <pbonzini@redhat.com>
> >>>> CC: Richard Henderson <rth@twiddle.net>
> >>>> CC: Eduardo Habkost <ehabkost@redhat.com>
> >>>> CC: "Andreas Färber" <afaerber@suse.de>
> >>>> ---
> >>>>    target-i386/cpu-qom.h | 1 +
> >>>>    target-i386/cpu.c     | 1 +
> >>>>    target-i386/kvm.c     | 6 +++++-
> >>>>    3 files changed, 7 insertions(+), 1 deletion(-)
> >>>>
> >>>> diff --git a/target-i386/cpu-qom.h b/target-i386/cpu-qom.h
> >>>> index 5f9d960..4aec616 100644
> >>>> --- a/target-i386/cpu-qom.h
> >>>> +++ b/target-i386/cpu-qom.h
> >>>> @@ -96,6 +96,7 @@ typedef struct X86CPU {
> >>>>        bool hyperv_runtime;
> >>>>        bool hyperv_synic;
> >>>>        bool hyperv_stimer;
> >>>> +    bool hyperv_cpuhotplug;
> >>>>        bool check_cpuid;
> >>>>        bool enforce_cpuid;
> >>>>        bool expose_kvm;
> >>>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> >>>> index b255644..32c38ae 100644
> >>>> --- a/target-i386/cpu.c
> >>>> +++ b/target-i386/cpu.c
> >>>> @@ -3172,6 +3172,7 @@ static Property x86_cpu_properties[] = {
> >>>>        DEFINE_PROP_BOOL("hv-runtime", X86CPU, hyperv_runtime, false),
> >>>>        DEFINE_PROP_BOOL("hv-synic", X86CPU, hyperv_synic, false),
> >>>>        DEFINE_PROP_BOOL("hv-stimer", X86CPU, hyperv_stimer, false),
> >>>> +    DEFINE_PROP_BOOL("hv-cpuhotplug", X86CPU, hyperv_cpuhotplug,
> >>>> false),  
> >>> Is "cpuhotplug" some fixed HyperV name? Otherwise we generally use a
> >>> dashes convention for QOM properties, i.e. "hv-cpu-hotplug".
> >>>
> >>> Regards,
> >>> Andreas  
> >> This name is for libvirt. We can take one one. This is not a problem.
> >>
> >> Roman Kagan has proposed verbally a bit different approach.
> >> He suggests not to introduce the option but
> >> check here that HyperV is enabled (any single option is enough
> >> to face the problem) and CPU hotplug is enabled and automatically
> >> enable this bit.
> >>
> >> Paolo, Andreas, is there any opinion on this?  
> > That implicit proposal sounds even more appealing to me, yes.
> >
> > You could still additionally do a dynamic property though, in case you
> > want to inspect or toggle it at runtime (no clue when Windows reads it).  
> no. this will not work. I should setup CPUID at the beginning
> (before boot) and keep it persistent. Thus either option
> coming from libvirt or this bit would be automatically
> calculated by QEMU.
> 
> I'll check that we could create read-only property to export
> the value.
> 
> OK. I'll redo this tomorrow if nobody will explicitly say 'no'
> today :)
+to Anreas suggestion and readonly prop

there is not need to create a field for it in CPU structure,
just checking for present hyperv flags should be sufficient.


> 
> Den
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-02-12 14:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-11 20:19 [Qemu-devel] [PATCH 1/1] hyperv: cpu hotplug fix with HyperV enabled Denis V. Lunev
2016-02-12 11:00 ` Andreas Färber
2016-02-12 11:08   ` Denis V. Lunev
2016-02-12 11:13     ` Andreas Färber
2016-02-12 11:27       ` Denis V. Lunev
2016-02-12 14:42         ` Igor Mammedov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).