• S
    KVM: SVM: Drop AVIC's intermediate avic_set_running() helper · 935a7333
    Sean Christopherson 提交于
    Drop avic_set_running() in favor of calling avic_vcpu_{load,put}()
    directly, and modify the block+put path to use preempt_disable/enable()
    instead of get/put_cpu(), as it doesn't actually care about the current
    pCPU associated with the vCPU.  Opportunistically add lockdep assertions
    as being preempted in avic_vcpu_put() would lead to consuming stale data,
    even though doing so _in the current code base_ would not be fatal.
    
    Add a much needed comment explaining why svm_vcpu_blocking() needs to
    unload the AVIC and update the IRTE _before_ the vCPU starts blocking.
    Signed-off-by: NSean Christopherson <seanjc@google.com>
    Message-Id: <20211208015236.1616697-22-seanjc@google.com>
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    935a7333
avic.c 27.1 KB