[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 19/30] i386: Move HV_APIC_ACCESS_RECOMMENDED bit setting to hyperv
From: |
Paolo Bonzini |
Subject: |
[PULL 19/30] i386: Move HV_APIC_ACCESS_RECOMMENDED bit setting to hyperv_fill_cpuids() |
Date: |
Sun, 3 Oct 2021 09:42:39 +0200 |
From: Vitaly Kuznetsov <vkuznets@redhat.com>
In preparation to enabling Hyper-V + APICv/AVIC move
HV_APIC_ACCESS_RECOMMENDED setting out of kvm_hyperv_properties[]: the
'real' feature bit for the vAPIC features is HV_APIC_ACCESS_AVAILABLE,
HV_APIC_ACCESS_RECOMMENDED is a recommendation to use the feature which
we may not always want to give.
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Message-Id: <20210902093530.345756-6-vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
target/i386/kvm/kvm.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
index fbe6b7ac72..a9a8f77df3 100644
--- a/target/i386/kvm/kvm.c
+++ b/target/i386/kvm/kvm.c
@@ -821,9 +821,7 @@ static struct {
.desc = "virtual APIC (hv-vapic)",
.flags = {
{.func = HV_CPUID_FEATURES, .reg = R_EAX,
- .bits = HV_APIC_ACCESS_AVAILABLE},
- {.func = HV_CPUID_ENLIGHTMENT_INFO, .reg = R_EAX,
- .bits = HV_APIC_ACCESS_RECOMMENDED}
+ .bits = HV_APIC_ACCESS_AVAILABLE}
}
},
[HYPERV_FEAT_TIME] = {
@@ -1366,6 +1364,7 @@ static int hyperv_fill_cpuids(CPUState *cs,
c->ebx |= HV_POST_MESSAGES | HV_SIGNAL_EVENTS;
}
+
/* Not exposed by KVM but needed to make CPU hotplug in Windows work */
c->edx |= HV_CPU_DYNAMIC_PARTITIONING_AVAILABLE;
@@ -1374,6 +1373,10 @@ static int hyperv_fill_cpuids(CPUState *cs,
c->eax = hv_build_cpuid_leaf(cs, HV_CPUID_ENLIGHTMENT_INFO, R_EAX);
c->ebx = cpu->hyperv_spinlock_attempts;
+ if (hyperv_feat_enabled(cpu, HYPERV_FEAT_VAPIC)) {
+ c->eax |= HV_APIC_ACCESS_RECOMMENDED;
+ }
+
if (cpu->hyperv_no_nonarch_cs == ON_OFF_AUTO_ON) {
c->eax |= HV_NO_NONARCH_CORESHARING;
} else if (cpu->hyperv_no_nonarch_cs == ON_OFF_AUTO_AUTO) {
--
2.31.1
- [PULL 11/30] machine: Tweak the order of topology members in struct CpuTopology, (continued)
- [PULL 11/30] machine: Tweak the order of topology members in struct CpuTopology, Paolo Bonzini, 2021/10/03
- [PULL 12/30] machine: Make smp_parse generic enough for all arches, Paolo Bonzini, 2021/10/03
- [PULL 10/30] machine: Use ms instead of global current_machine in sanity-check, Paolo Bonzini, 2021/10/03
- [PULL 13/30] machine: Remove smp_parse callback from MachineClass, Paolo Bonzini, 2021/10/03
- [PULL 14/30] machine: Move smp_prefer_sockets to struct SMPCompatProps, Paolo Bonzini, 2021/10/03
- [PULL 15/30] machine: Use g_autoptr in machine_set_smp, Paolo Bonzini, 2021/10/03
- [PULL 16/30] machine: Put all sanity-check in the generic SMP parser, Paolo Bonzini, 2021/10/03
- [PULL 17/30] i386: Support KVM_CAP_ENFORCE_PV_FEATURE_CPUID, Paolo Bonzini, 2021/10/03
- [PULL 18/30] i386: Support KVM_CAP_HYPERV_ENFORCE_CPUID, Paolo Bonzini, 2021/10/03
- [PULL 22/30] i386: Change the default Hyper-V version to match WS2016, Paolo Bonzini, 2021/10/03
- [PULL 19/30] i386: Move HV_APIC_ACCESS_RECOMMENDED bit setting to hyperv_fill_cpuids(),
Paolo Bonzini <=
- [PULL 21/30] i386: Make Hyper-V version id configurable, Paolo Bonzini, 2021/10/03
- [PULL 20/30] i386: Implement pseudo 'hv-avic' ('hv-apicv') enlightenment, Paolo Bonzini, 2021/10/03
- [PULL 23/30] configure: Loosen GCC requirement from 7.5.0 to 7.4.0, Paolo Bonzini, 2021/10/03
- [PULL 24/30] virtio-mem-pci: Fix memory leak when creating MEMORY_DEVICE_SIZE_CHANGE event, Paolo Bonzini, 2021/10/03
- [PULL 27/30] tpm: mark correct memory region range dirty when clearing RAM, Paolo Bonzini, 2021/10/03
- [PULL 26/30] monitor: Rate-limit MEMORY_DEVICE_SIZE_CHANGE qapi events per device, Paolo Bonzini, 2021/10/03
- [PULL 25/30] qapi: Include qom-path in MEMORY_DEVICE_SIZE_CHANGE qapi events, Paolo Bonzini, 2021/10/03
- [PULL 28/30] softmmu/memory_mapping: never merge ranges accross memory regions, Paolo Bonzini, 2021/10/03
- [PULL 29/30] softmmu/memory_mapping: factor out adding physical memory ranges, Paolo Bonzini, 2021/10/03
- [PULL 30/30] softmmu/memory_mapping: optimize for RamDiscardManager sections, Paolo Bonzini, 2021/10/03