• S
    KVM: SVM: Emulate #INIT in response to triple fault shutdown · 265e4353
    Sean Christopherson 提交于
    Emulate a full #INIT instead of simply initializing the VMCB if the
    guest hits a shutdown.  Initializing the VMCB but not other vCPU state,
    much of which is mirrored by the VMCB, results in incoherent and broken
    vCPU state.
    
    Ideally, KVM would not automatically init anything on shutdown, and
    instead put the vCPU into e.g. KVM_MP_STATE_UNINITIALIZED and force
    userspace to explicitly INIT or RESET the vCPU.  Even better would be to
    add KVM_MP_STATE_SHUTDOWN, since technically NMI can break shutdown
    (and SMI on Intel CPUs).
    
    But, that ship has sailed, and emulating #INIT is the next best thing as
    that has at least some connection with reality since there exist bare
    metal platforms that automatically INIT the CPU if it hits shutdown.
    
    Fixes: 46fe4ddd ("[PATCH] KVM: SVM: Propagate cpu shutdown events to userspace")
    Signed-off-by: NSean Christopherson <seanjc@google.com>
    Message-Id: <20210713163324.627647-45-seanjc@google.com>
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    265e4353
svm.c 124.7 KB