[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YyTKDl04BQviLGW6@google.com>
Date: Fri, 16 Sep 2022 19:10:06 +0000
From: Sean Christopherson <seanjc@...gle.com>
To: "Suthikulpanit, Suravee" <suravee.suthikulpanit@....com>
Cc: Paolo Bonzini <pbonzini@...hat.com>, kvm@...r.kernel.org,
linux-kernel@...r.kernel.org, Maxim Levitsky <mlevitsk@...hat.com>,
Li RongQing <lirongqing@...du.com>
Subject: Re: [PATCH v2 04/23] KVM: x86: Inhibit AVIC SPTEs if any vCPU
enables x2APIC
On Tue, Sep 13, 2022, Suthikulpanit, Suravee wrote:
> > @@ -10122,7 +10136,15 @@ void __kvm_set_or_clear_apicv_inhibit(struct kvm *kvm,
> > set_or_clear_apicv_inhibit(&new, reason, set);
> > - if (!!old != !!new) {
> > + /*
> > + * If the overall "is APICv activated" status is unchanged, simply add
> > + * or remove the inihbit from the pile. x2APIC is an exception, as it
> > + * is a partial inhibit (only blocks SPTEs for the APIC access page).
> > + * If x2APIC is the only inhibit in either the old or the new set, then
> > + * vCPUs need to be kicked to transition between partially-inhibited
> > + * and fully-inhibited.
> > + */
> > + if ((!!old != !!new) || old == X2APIC_ENABLE || new == X2APIC_ENABLE) {
>
> Why are we comparing APICV inhibit reasons (old, new) with X2APIC_ENABLE
> here? Do you mean to compare with APICV_INHIBIT_REASON_X2APIC?
Heh, the truly hilarious part about this is that the code actually works, because
by pure coincidence, X2APIC_ENABLE == BIT(APICV_INHIBIT_REASON_X2APIC). Obviously
still needs to be changed, just found it amusing.
Powered by blists - more mailing lists