On Mon, Apr 08, 2013 at 10:17:42PM +0800, Yang Zhang wrote: > From: Yang Zhang <yang.z.zhang@xxxxxxxxx> > > Current interrupt coalescing logci which only used by RTC has conflict > with Posted Interrupt. > > This patch introduces a new mechinism to use eoi to track interrupt: > When delivering an interrupt to vcpu, the pending_eoi set to number of > vcpu that received the interrupt. And decrease it when each vcpu writing > eoi. No subsequent RTC interrupt can deliver to vcpu until all vcpus > write eoi. > Only minor comment from me to this one. Paolo, Marcelo any comments? > Changes from v7 to v8 > * Revamping restore code. > * Add BUG_ON to check pending_eoi. > * Rebase on top of KVM. > > Changes from v6 to v7 > * Only track the RTC interrupt when userspace uses *_LINE_* ioctl. > * Call rtc_irq_restore() after lapic is restored. > * Rebase on top of KVM. > > Changes from v5 to v6 > * Move set dest_map logic into __apic_accept_irq(). > * Use RTC_GSI to distinguish different platform, and drop all CONFIG_X86. > * Rebase on top of KVM. > > Changes from v4 to v5 > * Calculate destination vcpu on interrupt injection not hook into ioapic > modification. > * Rebase on top of KVM. > > Yang Zhang (7): > KVM: Add vcpu info to ioapic_update_eoi() > KVM: Introduce struct rtc_status > KVM: Return destination vcpu on interrupt injection > KVM: Add reset/restore rtc_status support > KVM: Force vmexit with virtual interrupt delivery > KVM: Let ioapic know the irq line status > KVM: Use eoi to track RTC interrupt delivery status > > arch/x86/kvm/i8254.c | 4 +- > arch/x86/kvm/lapic.c | 36 +++++++++---- > arch/x86/kvm/lapic.h | 7 ++- > arch/x86/kvm/x86.c | 6 ++- > include/linux/kvm_host.h | 11 +++-- > virt/kvm/assigned-dev.c | 13 +++-- > virt/kvm/eventfd.c | 15 +++-- > virt/kvm/ioapic.c | 133 ++++++++++++++++++++++++++++++++++++++++------ > virt/kvm/ioapic.h | 20 ++++++- > virt/kvm/irq_comm.c | 31 ++++++----- > virt/kvm/kvm_main.c | 3 +- > 11 files changed, 214 insertions(+), 65 deletions(-) -- Gleb. -- 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