KVM: VMX: Track CPU's MSR_IA32_VMX_BASIC as a single 64-bit value
authorXin Li <xin3.li@intel.com>
Wed, 5 Jun 2024 23:19:13 +0000 (16:19 -0700)
committerSean Christopherson <seanjc@google.com>
Thu, 22 Aug 2024 18:25:50 +0000 (11:25 -0700)
commit9df398ff7d2ab4fa2ecf6131044431dc94c5bdf6
tree084aad97f6156c5b40e751ac61be7e0e77460269
parentd7bfc9ffd58037ff86f9fd0c3cef77cccb555da3
KVM: VMX: Track CPU's MSR_IA32_VMX_BASIC as a single 64-bit value

Track the "basic" capabilities VMX MSR as a single u64 in vmcs_config
instead of splitting it across three fields, that obviously don't combine
into a single 64-bit value, so that KVM can use the macros that define MSR
bits using their absolute position.  Replace all open coded shifts and
masks, many of which are relative to the "high" half, with the appropriate
macro.

Opportunistically use VMX_BASIC_32BIT_PHYS_ADDR_ONLY instead of an open
coded equivalent, and clean up the related comment to not reference a
specific SDM section (to the surprise of no one, the comment is stale).

No functional change intended (though obviously the code generation will
be quite different).

Cc: Shan Kang <shan.kang@intel.com>
Cc: Kai Huang <kai.huang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
[sean: split to separate patch, write changelog]
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Reviewed-by: Kai Huang <kai.huang@intel.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20240605231918.2915961-6-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/include/asm/vmx.h
arch/x86/kvm/vmx/capabilities.h
arch/x86/kvm/vmx/vmx.c