• Avi Kivity's avatar
    KVM: VMX: Add list of potentially locally cached vcpus · 543e4243
    Avi Kivity authored
    VMX hardware can cache the contents of a vcpu's vmcs.  This cache needs
    to be flushed when migrating a vcpu to another cpu, or (which is the case
    that interests us here) when disabling hardware virtualization on a cpu.
    
    The current implementation of decaching iterates over the list of all vcpus,
    picks the ones that are potentially cached on the cpu that is being offlined,
    and flushes the cache.  The problem is that it uses mutex_trylock() to gain
    exclusive access to the vcpu, which fires off a (benign) warning about using
    the mutex in an interrupt context.
    
    To avoid this, and to make things generally nicer, add a new per-cpu list
    of potentially cached vcus.  This makes the decaching code much simpler.  The
    list is vmx-specific since other hardware doesn't have this issue.
    
    [andrea: fix crash on suspend/resume]
    Signed-off-by: default avatarAndrea Arcangeli <andrea@qumranet.com>
    Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
    543e4243
x86.c 95.5 KB