linux/arch/x86/kvm
Marcelo Tosatti 32f8840064 KVM: use smp_send_reschedule in kvm_vcpu_kick
KVM uses a function call IPI to cause the exit of a guest running on a
physical cpu. For virtual interrupt notification there is no need to
wait on IPI receival, or to execute any function.

This is exactly what the reschedule IPI does, without the overhead
of function IPI. So use it instead of smp_call_function_single in
kvm_vcpu_kick.

Also change the "guest_mode" variable to a bit in vcpu->requests, and
use that to collapse multiple IPI's that would be issued between the
first one and zeroing of guest mode.

This allows kvm_vcpu_kick to called with interrupts disabled.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2009-06-10 11:48:53 +03:00
..
i8254.c KVM: PIT: fix count read and mode 0 handling 2009-06-10 11:48:39 +03:00
i8254.h KVM: unify part of generic timer handling 2009-06-10 11:48:25 +03:00
i8259.c KVM: fix sparse warnings: context imbalance 2009-03-24 11:03:13 +02:00
irq.c KVM: Make kvm_cpu_(has|get)_interrupt() work for userspace irqchip too 2009-06-10 11:48:45 +03:00
irq.h KVM: make irq ack notifications aware of routing table 2009-03-24 11:03:08 +02:00
Kconfig Merge branch 'tracing/core-v2' into tracing-for-linus 2009-04-02 00:49:02 +02:00
kvm_cache_regs.h KVM: x86: accessors for guest registers 2008-10-15 10:13:57 +02:00
kvm_svm.h KVM: x86: Virtualize debug registers 2009-03-24 11:02:49 +02:00
kvm_timer.h KVM: unify part of generic timer handling 2009-06-10 11:48:25 +03:00
lapic.c KVM: fix apic_debug instances 2009-06-10 11:48:50 +03:00
lapic.h KVM: APIC: get rid of deliver_bitmask 2009-06-10 11:48:27 +03:00
Makefile KVM: unify part of generic timer handling 2009-06-10 11:48:25 +03:00
mmu.c KVM: Replace get_mt_mask_shift with get_mt_mask 2009-06-10 11:48:49 +03:00
mmu.h KVM: Use rsvd_bits_mask in load_pdptrs() 2009-06-10 11:48:36 +03:00
paging_tmpl.h KVM: MMU: remove global page optimization logic 2009-06-10 11:48:39 +03:00
svm.c KVM: SVM: Don't reinject event that caused a task switch 2009-06-10 11:48:51 +03:00
timer.c KVM: unify part of generic timer handling 2009-06-10 11:48:25 +03:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: Enable snooping control for supported hardware 2009-06-10 11:48:50 +03:00
x86_emulate.c KVM: x86 emulator: Decode soft interrupt instructions 2009-06-10 11:48:41 +03:00
x86.c KVM: use smp_send_reschedule in kvm_vcpu_kick 2009-06-10 11:48:53 +03:00
x86.h KVM: Remove kvm_push_irq() 2009-06-10 11:48:47 +03:00