linux_old1/arch/x86/kvm
Marcelo Tosatti 3d80840d96 KVM: hlt emulation should take in-kernel APIC/PIT timers into account
Timers that fire between guest hlt and vcpu_block's add_wait_queue() are
ignored, possibly resulting in hangs.

Also make sure that atomic_inc and waitqueue_active tests happen in the
specified order, otherwise the following race is open:

CPU0                                        CPU1
                                            if (waitqueue_active(wq))
add_wait_queue()
if (!atomic_read(pit_timer->pending))
    schedule()
                                            atomic_inc(pit_timer->pending)

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
2008-04-27 12:04:11 +03:00
..
Kconfig KVM: Add kvm trace userspace interface 2008-04-27 12:01:22 +03:00
Makefile KVM: Add kvm trace userspace interface 2008-04-27 12:01:22 +03:00
i8254.c KVM: hlt emulation should take in-kernel APIC/PIT timers into account 2008-04-27 12:04:11 +03:00
i8254.h KVM: Add reset support for in kernel PIT 2008-04-27 12:00:23 +03:00
i8259.c KVM: Move arch dependent files to new directory arch/x86/kvm/ 2008-01-30 18:01:18 +02:00
irq.c KVM: hlt emulation should take in-kernel APIC/PIT timers into account 2008-04-27 12:04:11 +03:00
irq.h KVM: hlt emulation should take in-kernel APIC/PIT timers into account 2008-04-27 12:04:11 +03:00
kvm_svm.h KVM: SVM: allocate the MSR permission map per VCPU 2008-04-27 11:53:21 +03:00
lapic.c KVM: hlt emulation should take in-kernel APIC/PIT timers into account 2008-04-27 12:04:11 +03:00
lapic.h KVM: Accelerated apic support 2008-01-30 18:01:20 +02:00
mmu.c KVM: MMU: Don't assume struct page for x86 2008-04-27 12:01:15 +03:00
mmu.h KVM: MMU: add TDP support to the KVM MMU 2008-04-27 11:53:20 +03:00
paging_tmpl.h KVM: MMU: Don't assume struct page for x86 2008-04-27 12:01:15 +03:00
svm.c KVM: SVM: do not intercept task switch with NPT 2008-04-27 12:01:23 +03: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: Add trace markers 2008-04-27 12:01:19 +03:00
vmx.h KVM: VMX: fix typo in VMX header define 2008-04-27 11:53:21 +03:00
x86.c KVM: Add trace markers 2008-04-27 12:01:19 +03:00
x86_emulate.c KVM: x86 emulator: fix sparse warnings in x86_emulate.c 2008-04-27 11:53:24 +03:00