• Marcelo Tosatti's avatar
    KVM: Fix race between timer migration and vcpu migration · d4acf7e7
    Marcelo Tosatti authored
    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: default avatarMarcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
    d4acf7e7
x86.c 94.5 KB