On Tue, Feb 26, 2013 at 10:12 AM, Gleb Natapov <gleb@xxxxxxxxxx> wrote: >> > But do not see how to implement efficiently without interface change. The > idea is basically to register ACK notifier for RTC interrupt but terminate > it in the kernel instead of reporting to userspace. Kernel should know > somehow what GSI should it register ACK notifier for. Right, my idea does not help at all. > There are couple > of solutions: > 1. New interface to tell what GSI to track. > - Cons: KVM_IRQ_LINE_STATUS will stop working for old QEMUs that do > not use it. New special purpose API. > 2. Register ACK notifier only for RTC. > - Cons: KVM_IRQ_LINE_STATUS will work only for RTC. This is the only > thing that use it currently, but such change will make it one > trick pony officially. > 3. Register ACK notifiers for all edge interrupts in IOAPIC. > - Cons: with APICv edge interrupt does not require EOI to do vmexit. > Registering ACK notifiers for all of them will make them all > do vmexit. > 4. Combinations of 1 and 3. Register ACK notifiers for all edge interrupts > in IOAPIC and provide API to drop unneeded notifiers. > - Cons: New special purpose API. > 5. Make KVM_IRQ_LINE_STATUS register an ack notifier, document it as more expensive than KVM_IRQ_LINE, and change qemu to use KVM_IRQ_LINE when it is sufficient. Pros: fully backwards compatible Cons: to realize full performance, need to patch qemu -- 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