linux-stable/virt/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
..
ioapic.c KVM: Route irq 0 to vcpu 0 exclusively 2008-03-04 15:19:48 +02:00
ioapic.h KVM: Move ioapic code to common directory. 2008-01-30 18:01:19 +02:00
iodev.h KVM: Move drivers/kvm/* to virt/kvm/ 2008-01-30 18:01:18 +02:00
kvm_main.c KVM: hlt emulation should take in-kernel APIC/PIT timers into account 2008-04-27 12:04:11 +03:00
kvm_trace.c KVM: Add kvm trace userspace interface 2008-04-27 12:01:22 +03:00