2015-10-07 11:29+0200, Paolo Bonzini: > On 13/08/2015 15:46, Radim Krčmář wrote: >> + if (kvm_x86_ops->sync_pir_to_irr(vcpu)) >> + kvm_make_request(KVM_REQ_EVENT, vcpu); >> + > > The call to sync_pir_to_irr belongs more in vcpu_scan_ioapic, I think. Will do so in v2. > More importantly, I think that KVM_REQ_EVENT is a latent bug for > kvm_vcpu_ioctl_get_lapic as well, so the call to kvm_make_request should > go in vmx_sync_pir_to_irr or in a new kvm_sync_pir_to_irr wrapper. True, thanks. I'll make the request in kvm_apic_update_irr (unless you'd prefer to have it in new kvm_sync_pir_to_irr). >> + (e->fields.trig_mode == IOAPIC_EDGE_TRIG && >> + kvm_apic_pending_eoi(vcpu, e->fields.vector))) > > Should we test again here that kvm_irq_has_notifier(ioapic->kvm, > KVM_IRQCHIP_IOAPIC, index), to avoid unnecessarily marking other > edge-triggered interrupts? Other edge-triggered interrupts are skipped by a previous condition: if (e->fields.trig_mode == IOAPIC_LEVEL_TRIG || kvm_irq_has_notifier(ioapic->kvm, KVM_IRQCHIP_IOAPIC, index) || index == RTC_GSI) [we're here] I think it is ok to ignore level-triggered RTC, but we do want to include edge-triggered. -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html