linux/arch/x86/kvm
Marcelo Tosatti e48258009d KVM: PIC: enhance IPI avoidance
The PIC code makes little effort to avoid kvm_vcpu_kick(), resulting in
unnecessary guest exits in some conditions.

For example, if the timer interrupt is routed through the IOAPIC, IRR
for IRQ 0 will get set but not cleared, since the APIC is handling the
acks.

This means that everytime an interrupt < 16 is triggered, the priority
logic will find IRQ0 pending and send an IPI to vcpu0 (in case IRQ0 is
not masked, which is Linux's case).

Introduce a new variable isr_ack to represent the IRQ's for which the
guest has been signalled / cleared the ISR. Use it to avoid more than
one IPI per trigger-ack cycle, in addition to the avoidance when ISR is
set in get_priority().

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2008-10-15 14:25:28 +02:00
..
i8254.c KVM: x86: do not execute halted vcpus 2008-10-15 10:15:26 +02:00
i8254.h KVM: PIT: fix injection logic and count 2008-10-15 10:15:17 +02:00
i8259.c KVM: PIC: enhance IPI avoidance 2008-10-15 14:25:28 +02:00
irq.c KVM: PIT: fix injection logic and count 2008-10-15 10:15:17 +02:00
irq.h KVM: PIC: enhance IPI avoidance 2008-10-15 14:25:28 +02:00
Kconfig mmu-notifiers: core 2008-07-28 16:30:21 -07:00
kvm_cache_regs.h KVM: x86: accessors for guest registers 2008-10-15 10:13:57 +02:00
kvm_svm.h KVM: SVM: allocate the MSR permission map per VCPU 2008-04-27 11:53:21 +03:00
lapic.c KVM: x86: do not execute halted vcpus 2008-10-15 10:15:26 +02:00
lapic.h KVM: add statics were possible, function definition in lapic.h 2008-07-20 12:40:46 +03:00
Makefile KVM: Device Assignment with VT-d 2008-10-15 14:25:04 +02:00
mmu.c KVM: MMU: add "oos_shadow" parameter to disable oos 2008-10-15 14:25:27 +02:00
mmu.h KVM: MMU: Fix false flooding when a pte points to page table 2008-07-20 12:40:50 +03:00
paging_tmpl.h KVM: MMU: out of sync shadow core 2008-10-15 14:25:25 +02:00
svm.c KVM: x86: trap invlpg 2008-10-15 14:25:21 +02:00
svm.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: x86: trap invlpg 2008-10-15 14:25:21 +02:00
vmx.h x86: Move FEATURE_CONTROL bits to msr-index.h 2008-10-15 10:16:14 +02:00
vtd.c KVM: Device Assignment with VT-d 2008-10-15 14:25:04 +02:00
x86_emulate.c KVM: x86 emulator: Use DstAcc for 'and' 2008-10-15 10:16:14 +02:00
x86.c KVM: PIC: enhance IPI avoidance 2008-10-15 14:25:28 +02:00
x86.h KVM: Add a pending interrupt queue 2008-10-15 10:15:13 +02:00