• Sean Christopherson's avatar
    KVM: VMX: Optimize vmx_set_rflags() for unrestricted guest · 491c1ad1
    Sean Christopherson authored
    Rework vmx_set_rflags() to avoid the extra code need to handle emulation
    of real mode and invalid state when unrestricted guest is disabled.  The
    primary reason for doing so is to avoid the call to vmx_get_rflags(),
    which will incur a VMREAD when RFLAGS is not already available.  When
    running nested VMs, the majority of calls to vmx_set_rflags() will occur
    without an associated vmx_get_rflags(), i.e. when stuffing GUEST_RFLAGS
    during transitions between vmcs01 and vmcs02.
    
    Note, vmx_get_rflags() guarantees RFLAGS is marked available.
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    [Replace "else" with early "return" in the unrestricted guest branch. - Paolo]
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    491c1ad1
vmx.c 219 KB