On Wed, Jul 29, 2015 at 02:56:42PM +0200, Paolo Bonzini wrote: > > > + kvm_rtc_eoi_tracking_restore_one(vcpu); > > } > > > > void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu) > > @@ -1921,7 +1923,8 @@ static void apic_sync_pv_eoi_to_guest(struct kvm_vcpu *vcpu, > > /* Cache not set: could be safe but we don't bother. */ > > apic->highest_isr_cache == -1 || > > /* Need EOI to update ioapic. */ > > - kvm_ioapic_handles_vector(vcpu->kvm, apic->highest_isr_cache)) { > > + kvm_ioapic_handles_vector(vcpu->kvm, apic->highest_isr_cache) || > > + irqchip_split(vcpu->kvm)) { > > This is ugly (and if anything irqchip_split should be done before > kvm_ioapic_handles_vector). Could this just test the EOI exit bitmap > instead? > That could be done. The EOI exit bitmap write paths for split and !split would need to be consolidated. (We can't pull them from the VMCS, so we'd need to fetch them from the one stored in kvm_vcpu). > Also, who sets TMR in the split irqchip case? I'll post a patch roday > or tomorrow to compute TMR in __apic_accept_irq and to do the > aforementioned EOI exit bitmap test. Another option would be to compute the TMR in vcpu_scan_ioapic, by extracting it from the EOI exit bitmaps (which would be most similar to how it had been done previously), but I prefer computing it in __apic_accept_irq. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html