]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: VMX: cache secondary exec controls
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 24 Aug 2017 11:55:35 +0000 (13:55 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 24 Aug 2017 13:35:14 +0000 (15:35 +0200)
commit3366ec81056c3ddab21c810dcfc0f4f9552e7b84
tree44a3b127ce9e25c58528bd44990ca9624260667c
parent1f08e7a64182637624da77fe168fa0e08182fed3
KVM: VMX: cache secondary exec controls

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: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx.c