[PATCH v2 00/16] interrupt injection rework

Gleb Natapov
2009-04-21T14:45:16Z

Hi,

This patch series aims to consolidate IRQ injection code for in kernel
IRQ chip and userspace one. Also to move IRQ injection logic from
SVM/VMX specific code to x86.c.

Changelog:
v2:
Fix SVM NMI injection. IRET intercept should be activated at NMI injection
time. Update NMI injection statistics. Don't exit to userspace on IRET
intercept.

Gleb Natapov (16):
Make kvm_cpu_(has|get)_interrupt() work for userspace irqchip too.
Consolidate userspace and kernel interrupt injection for VMX.
Cleanup vmx_intr_assist()
Use kvm_arch_interrupt_allowed() instead of checking
interrupt_window_open directly
Coalesce userspace/kernel irqchip interrupt injection logic.
Use EVENTINJ to inject interrupts.
Remove exception_injected() callback.
Remove inject_pending_vectors() callback.
kvm_push_irq() no longer used.
sync_lapic_to_cr8() should always sync cr8 to V_TPR.
Do not report TPR write to userspace if new value bigger or equal to
a previous one.
Get rid of arch.interrupt_window_open & arch.nmi_window_open
Add NMI injection support to SVM.
Move interrupt injection logic to x86.c
Fix userspace IRQ chip migration.
Get rid of get_irq() callback.

arch/x86/include/asm/kvm_host.h | 14 +-
arch/x86/kvm/irq.c | 7 +
arch/x86/kvm/svm.c | 253 +++++++++++++++++----------------------
arch/x86/kvm/vmx.c | 184 +++++++----------------------
arch/x86/kvm/x86.c | 102 +++++++++++++----
arch/x86/kvm/x86.h | 7 -
6 files changed, 249 insertions(+), 318 deletions(-)