From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56930) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUBfp-0005AF-HA for qemu-devel@nongnu.org; Fri, 12 Feb 2016 06:14:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUBfk-0004g4-14 for qemu-devel@nongnu.org; Fri, 12 Feb 2016 06:14:04 -0500 Received: from mx2.suse.de ([195.135.220.15]:50788) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUBfj-0004fv-M4 for qemu-devel@nongnu.org; Fri, 12 Feb 2016 06:13:59 -0500 References: <1455221959-22728-1-git-send-email-den@openvz.org> <56BDBB31.3010302@suse.de> <56BDBD24.5040700@openvz.org> From: =?UTF-8?Q?Andreas_F=c3=a4rber?= Message-ID: <56BDBE76.7070005@suse.de> Date: Fri, 12 Feb 2016 12:13:58 +0100 MIME-Version: 1.0 In-Reply-To: <56BDBD24.5040700@openvz.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 1/1] hyperv: cpu hotplug fix with HyperV enabled List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Denis V. Lunev" Cc: "Alexey V. Kostyushko" , Paolo Bonzini , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson Am 12.02.2016 um 12:08 schrieb Denis V. Lunev: > On 02/12/2016 02:00 PM, Andreas F=C3=A4rber wrote: >> Am 11.02.2016 um 21:19 schrieb Denis V. Lunev: >>> From: "Alexey V. Kostyushko" >>> >>> With Hyper-V enabled CPU hotplug stops working. The CPU appears in >>> device >>> manager on Windows but does not appear in peformance monitor and cont= rol >>> 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 >>> Signed-off-by: Denis V. Lunev >>> CC: Paolo Bonzini >>> CC: Richard Henderson >>> CC: Eduardo Habkost >>> CC: "Andreas F=C3=A4rber" >>> --- >>> 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[] =3D { >>> 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. >=20 > 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. >=20 > 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. >=20 > Den --=20 SUSE Linux GmbH, Maxfeldstr. 5, 90409 N=C3=BCrnberg, Germany GF: Felix Imend=C3=B6rffer, Jane Smithard, Graham Norton; HRB 21284 (AG N= =C3=BCrnberg)