KVM: Fix race between timer migration and vcpu migration
authorMarcelo Tosatti <mtosatti@redhat.com>
Fri, 6 Jun 2008 19:37:35 +0000 (16:37 -0300)
committerAvi Kivity <avi@qumranet.com>
Tue, 24 Jun 2008 09:16:52 +0000 (12:16 +0300)
A guest vcpu instance can be scheduled to a different physical CPU
between the test for KVM_REQ_MIGRATE_TIMER and local_irq_disable().

If that happens, the timer will only be migrated to the current pCPU on
the next exit, meaning that guest LAPIC timer event can be delayed until
a host interrupt is triggered.

Fix it by cancelling guest entry if any vcpu request is pending.  This
has the side effect of nicely consolidating vcpu->requests checks.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>

No differences found