From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55283) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUBad-0001Q9-Oq for qemu-devel@nongnu.org; Fri, 12 Feb 2016 06:08:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUBaa-00037K-HA for qemu-devel@nongnu.org; Fri, 12 Feb 2016 06:08:43 -0500 Received: from mx2.parallels.com ([199.115.105.18]:45080) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUBaa-00033u-Ad for qemu-devel@nongnu.org; Fri, 12 Feb 2016 06:08:40 -0500 References: <1455221959-22728-1-git-send-email-den@openvz.org> <56BDBB31.3010302@suse.de> From: "Denis V. Lunev" Message-ID: <56BDBD24.5040700@openvz.org> Date: Fri, 12 Feb 2016 14:08:20 +0300 MIME-Version: 1.0 In-Reply-To: <56BDBB31.3010302@suse.de> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit 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: =?UTF-8?Q?Andreas_F=c3=a4rber?= Cc: "Alexey V. Kostyushko" , Paolo Bonzini , qemu-devel@nongnu.org, 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" >> >> 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 >> Signed-off-by: Denis V. Lunev >> CC: Paolo Bonzini >> CC: Richard Henderson >> CC: Eduardo Habkost >> CC: "Andreas Färber" >> --- >> 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