[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH-for-4.2 1/1] Only enable the halt poll control MSR i
From: |
Mark Kanda |
Subject: |
[Qemu-devel] [PATCH-for-4.2 1/1] Only enable the halt poll control MSR if it is supported by the host |
Date: |
Tue, 16 Jul 2019 16:44:11 -0500 |
The halt poll control MSR should only be enabled on hosts which
support it.
Fixes: ("kvm: i386: halt poll control MSR support")
Signed-off-by: Mark Kanda <address@hidden>
---
target/i386/cpu.c | 8 +++++++-
target/i386/kvm.c | 2 --
target/i386/machine.c | 1 -
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index a8bafdb8b9..dacbf7a9fe 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -2838,7 +2838,6 @@ static PropValue kvm_default_props[] = {
{ "kvm-asyncpf", "on" },
{ "kvm-steal-time", "on" },
{ "kvm-pv-eoi", "on" },
- { "kvm-poll-control", "on" },
{ "kvmclock-stable-bit", "on" },
{ "x2apic", "on" },
{ "acpi", "off" },
@@ -5109,6 +5108,13 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error
**errp)
env->cpuid_xlevel2 = env->cpuid_min_xlevel2;
}
+ /* Enable the halt poll control MSR if it is supported by the host */
+ if (x86_cpu_get_supported_feature_word(FEAT_KVM, cpu->migratable) &
+ (1 << KVM_FEATURE_POLL_CONTROL)) {
+ env->features[FEAT_KVM] |= 1 << KVM_FEATURE_POLL_CONTROL;
+ env->poll_control_msr = 1;
+ }
+
out:
if (local_err != NULL) {
error_propagate(errp, local_err);
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index cb22684139..81dd5d2c1b 100644
--- a/target/i386/kvm.c
+++ b/target/i386/kvm.c
@@ -1796,8 +1796,6 @@ void kvm_arch_reset_vcpu(X86CPU *cpu)
hyperv_x86_synic_reset(cpu);
}
- /* enabled by default */
- env->poll_control_msr = 1;
}
void kvm_arch_do_init_vcpu(X86CPU *cpu)
diff --git a/target/i386/machine.c b/target/i386/machine.c
index 20077a8a5a..9d6095b264 100644
--- a/target/i386/machine.c
+++ b/target/i386/machine.c
@@ -394,7 +394,6 @@ static bool steal_time_msr_needed(void *opaque)
return cpu->env.steal_time_msr != 0;
}
-/* Poll control MSR enabled by default */
static bool poll_control_msr_needed(void *opaque)
{
X86CPU *cpu = opaque;
--
2.21.0