• Paolo Bonzini's avatar
    KVM: VMX: cache secondary exec controls · 80154d77
    Paolo Bonzini authored
    Currently, secondary execution controls are divided in three groups:
    
    - static, depending mostly on the module arguments or the processor
      (vmx_secondary_exec_control)
    
    - static, depending on CPUID (vmx_cpuid_update)
    
    - dynamic, depending on nested VMX or local APIC state
    
    Because walking CPUID is expensive, prepare_vmcs02 is using only
    the first group.  This however is unnecessarily complicated.  Just
    cache the static secondary execution controls, and then prepare_vmcs02
    does not need to compute them every time.  Computation of all static
    secondary execution controls is now kept in a single function,
    vmx_compute_secondary_exec_control.
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    80154d77
vmx.c 340 KB