Messages in this thread Patch in this message | | | Subject | Re: [PATCH 11/19] KVM: SVM: Add helper to perform final AVIC "kick" of single vCPU | From | Maxim Levitsky <> | Date | Wed, 31 Aug 2022 13:25:38 +0300 |
| |
On Wed, 2022-08-31 at 00:34 +0000, Sean Christopherson wrote: > Add a helper to perform the final kick, two instances of the ICR decoding > is one too many. > > No functional change intended. > > Signed-off-by: Sean Christopherson <seanjc@google.com> > --- > arch/x86/kvm/svm/avic.c | 25 +++++++++++++------------ > 1 file changed, 13 insertions(+), 12 deletions(-) > > diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c > index 3959d4766911..2095ece70712 100644 > --- a/arch/x86/kvm/svm/avic.c > +++ b/arch/x86/kvm/svm/avic.c > @@ -329,6 +329,16 @@ void avic_ring_doorbell(struct kvm_vcpu *vcpu) > put_cpu(); > } > > + > +static void avic_kick_vcpu(struct kvm_vcpu *vcpu, u32 icrl) > +{ > + vcpu->arch.apic->irr_pending = true; > + svm_complete_interrupt_delivery(vcpu, > + icrl & APIC_MODE_MASK, > + icrl & APIC_INT_LEVELTRIG, > + icrl & APIC_VECTOR_MASK); > +} > + > /* > * A fast-path version of avic_kick_target_vcpus(), which attempts to match > * destination APIC ID to vCPU without looping through all vCPUs. > @@ -427,11 +437,7 @@ static int avic_kick_target_vcpus_fast(struct kvm *kvm, struct kvm_lapic *source > if (unlikely(!target_vcpu)) > return 0; > > - target_vcpu->arch.apic->irr_pending = true; > - svm_complete_interrupt_delivery(target_vcpu, > - icrl & APIC_MODE_MASK, > - icrl & APIC_INT_LEVELTRIG, > - icrl & APIC_VECTOR_MASK); > + avic_kick_vcpu(target_vcpu, icrl); > return 0; > } > > @@ -455,13 +461,8 @@ static void avic_kick_target_vcpus(struct kvm *kvm, struct kvm_lapic *source, > */ > kvm_for_each_vcpu(i, vcpu, kvm) { > if (kvm_apic_match_dest(vcpu, source, icrl & APIC_SHORT_MASK, > - dest, icrl & APIC_DEST_MASK)) { > - vcpu->arch.apic->irr_pending = true; > - svm_complete_interrupt_delivery(vcpu, > - icrl & APIC_MODE_MASK, > - icrl & APIC_INT_LEVELTRIG, > - icrl & APIC_VECTOR_MASK); > - } > + dest, icrl & APIC_DEST_MASK)) > + avic_kick_vcpu(vcpu, icrl); > } > } >
I don't know what I think about this, sometimes *minor* code duplication might actually be a good thing, as it is easier to read the code, but I don't have much against this as well.
I am not sure if before or after this code is more readable.
But anyway,
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Best regards, Maxim Levitsky
| |