• Sean Christopherson's avatar
    KVM: VMX: Stuff vcpu->arch.apic_base directly at vCPU RESET · f0428b3d
    Sean Christopherson authored
    Write vcpu->arch.apic_base directly instead of bouncing through
    kvm_set_apic_base().  This is a glorified nop, and is a step towards
    cleaning up the mess that is local APIC creation.
    
    When using an in-kernel APIC, kvm_create_lapic() explicitly sets
    vcpu->arch.apic_base to MSR_IA32_APICBASE_ENABLE to avoid its own
    kvm_lapic_set_base() call in kvm_lapic_reset() from triggering state
    changes.  That call during RESET exists purely to set apic->base_address
    to the default base value.  As a result, by the time VMX gets control,
    the only missing piece is the BSP bit being set for the reset BSP.
    
    For a userspace APIC, there are no side effects to process (for the APIC).
    
    In both cases, the call to kvm_update_cpuid_runtime() is a nop because
    the vCPU hasn't yet been exposed to userspace, i.e. there can't be any
    CPUID entries.
    
    No functional change intended.
    Reviewed-by: default avatarReiji Watanabe <reijiw@google.com>
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20210713163324.627647-17-seanjc@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    f0428b3d
vmx.c 223 KB