Message ID | 20250304013335.4155703-2-seanjc@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | KVM: x86: Optimize "stale" EOI bitmap exiting | expand |
On Mon, 2025-03-03 at 17:33 -0800, Sean Christopherson wrote: > Extract and isolate the trigger mode check in kvm_scan_ioapic_routes() in > anticipation of moving destination matching logic to a common helper (for > userspace vs. in-kernel I/O APIC emulation). > > No functional change intended. > > Signed-off-by: Sean Christopherson <seanjc@google.com> Reviewed-by: Kai Huang <kai.huang@intel.com> > --- > arch/x86/kvm/irq_comm.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/kvm/irq_comm.c b/arch/x86/kvm/irq_comm.c > index 8136695f7b96..866f84392797 100644 > --- a/arch/x86/kvm/irq_comm.c > +++ b/arch/x86/kvm/irq_comm.c > @@ -424,10 +424,12 @@ void kvm_scan_ioapic_routes(struct kvm_vcpu *vcpu, > > kvm_set_msi_irq(vcpu->kvm, entry, &irq); > > - if (irq.trig_mode && > - (kvm_apic_match_dest(vcpu, NULL, APIC_DEST_NOSHORT, > - irq.dest_id, irq.dest_mode) || > - kvm_apic_pending_eoi(vcpu, irq.vector))) > + if (!irq.trig_mode) > + continue; Perhaps take this chance to make it explicit? if (irq.trig_mode != IOAPIC_LEVEL_TRIG) continue; kvm_ioapic_scan_entry() also checks against IOAPIC_LEVEL_TRIG explicitly. > + > + if (kvm_apic_match_dest(vcpu, NULL, APIC_DEST_NOSHORT, > + irq.dest_id, irq.dest_mode) || > + kvm_apic_pending_eoi(vcpu, irq.vector)) > __set_bit(irq.vector, ioapic_handled_vectors); > } > }
diff --git a/arch/x86/kvm/irq_comm.c b/arch/x86/kvm/irq_comm.c index 8136695f7b96..866f84392797 100644 --- a/arch/x86/kvm/irq_comm.c +++ b/arch/x86/kvm/irq_comm.c @@ -424,10 +424,12 @@ void kvm_scan_ioapic_routes(struct kvm_vcpu *vcpu, kvm_set_msi_irq(vcpu->kvm, entry, &irq); - if (irq.trig_mode && - (kvm_apic_match_dest(vcpu, NULL, APIC_DEST_NOSHORT, - irq.dest_id, irq.dest_mode) || - kvm_apic_pending_eoi(vcpu, irq.vector))) + if (!irq.trig_mode) + continue; + + if (kvm_apic_match_dest(vcpu, NULL, APIC_DEST_NOSHORT, + irq.dest_id, irq.dest_mode) || + kvm_apic_pending_eoi(vcpu, irq.vector)) __set_bit(irq.vector, ioapic_handled_vectors); } }
Extract and isolate the trigger mode check in kvm_scan_ioapic_routes() in anticipation of moving destination matching logic to a common helper (for userspace vs. in-kernel I/O APIC emulation). No functional change intended. Signed-off-by: Sean Christopherson <seanjc@google.com> --- arch/x86/kvm/irq_comm.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)