• Maxim Levitsky's avatar
    KVM: SVM: use vmcb01 in svm_refresh_apicv_exec_ctrl · 5868b822
    Maxim Levitsky authored
    Currently when SVM is enabled in guest CPUID, AVIC is inhibited as soon
    as the guest CPUID is set.
    
    AVIC happens to be fully disabled on all vCPUs by the time any guest
    entry starts (if after migration the entry can be nested).
    
    The reason is that currently we disable avic right away on vCPU from which
    the kvm_request_apicv_update was called and for this case, it happens to be
    called on all vCPUs (by svm_vcpu_after_set_cpuid).
    
    After we stop doing this, AVIC will end up being disabled only when
    KVM_REQ_APICV_UPDATE is processed which is after we done switching to the
    nested guest.
    
    Fix this by just using vmcb01 in svm_refresh_apicv_exec_ctrl for avic
    (which is a right thing to do anyway).
    Signed-off-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
    Message-Id: <20210713142023.106183-4-mlevitsk@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    5868b822
avic.c 25.5 KB