lkml.org 
[lkml]   [2022]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [RFC PATCH 06/13] KVM: SVM: Add logic to determine x2APIC mode
From
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

\
 
 \ /
  Last update: 2022-03-03 14:12    [W:0.073 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site