Currently, when a guest has the pit running but masked, it will accumulate pending irq injection requests but will never ack them (as the interrupts are masked). When the interrupt is finally unmasked, the reinject logic ignores pending interrupts since it sees unacked pending irqs.
Add a notifier on irq unmasking, and use that in the PIT to clear the reinject logic. Currently only ioapic mask notifications are implemented. This could be used to disable the hrtimer if the guest masks the PIT and uses some other timer. Please review. Avi Kivity (3): KVM: Add CONFIG_HAVE_KVM_IRQCHIP KVM: Interrupt mask notifiers for ioapic KVM: Reset PIT irq injection logic when the PIT IRQ is unmasked arch/ia64/kvm/Kconfig | 4 ++++ arch/powerpc/kvm/Kconfig | 3 +++ arch/s390/kvm/Kconfig | 3 +++ arch/x86/kvm/Kconfig | 4 ++++ arch/x86/kvm/i8254.c | 15 +++++++++++++++ arch/x86/kvm/i8254.h | 1 + include/linux/kvm_host.h | 17 +++++++++++++++++ virt/kvm/ioapic.c | 7 ++++++- virt/kvm/irq_comm.c | 24 ++++++++++++++++++++++++ virt/kvm/kvm_main.c | 3 +++ 10 files changed, 80 insertions(+), 1 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
