Messages in this thread | | | Date | Thu, 3 Mar 2022 20:12:11 +0700 | Subject | Re: [RFC PATCH 06/13] KVM: SVM: Add logic to determine x2APIC mode | From | Suravee Suthikulpanit <> |
| |
Hi Maxim
On 2/25/22 12:29 AM, Maxim Levitsky wrote: >> diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h >> index 1a0bf6b853df..bfbebb933da2 100644 >> --- a/arch/x86/kvm/svm/svm.h >> +++ b/arch/x86/kvm/svm/svm.h >> @@ -225,6 +225,7 @@ struct vcpu_svm { >> u32 dfr_reg; >> struct page *avic_backing_page; >> u64 *avic_physical_id_cache; >> + bool x2apic_enabled; >> >> /* >> * Per-vcpu list of struct amd_svm_iommu_ir: >> @@ -566,6 +567,7 @@ void avic_init_vmcb(struct vcpu_svm *svm); >> int avic_incomplete_ipi_interception(struct kvm_vcpu *vcpu); >> int avic_unaccelerated_access_interception(struct kvm_vcpu *vcpu); >> int avic_init_vcpu(struct vcpu_svm *svm); >> +void avic_update_vapic_bar(struct vcpu_svm *svm, u64 data); >> void avic_vcpu_load(struct kvm_vcpu *vcpu, int cpu); >> void avic_vcpu_put(struct kvm_vcpu *vcpu); >> void avic_post_state_restore(struct kvm_vcpu *vcpu); > > .... > > I also don't think you need x2apic_enabled boolean. > You can already know if a vCPU uses apic or x2apic via > > kvm_get_apic_mode(vcpu); > > in fact I don't think avic code should have any bookeeping in regard to x2apic/x2avic mode, > but rather kvm's apic mode (which is read directly from apic base msr (vcpu->arch.apic_base), > should enable avic, or x2avic if possible, or inhibit avic if not possible. > > e.g it should drive the bits in vmcb and such.
I'll also clean this up in V2.
Regards, Suravee
| |