On Tue, Jun 06, 2023 at 05:43:09PM -0700, Sean Christopherson wrote: >Snapshot the host's MSR_IA32_ARCH_CAPABILITIES, if it's supported, instead >of reading the MSR every time KVM wants to query the host state, e.g. when >initializing the default value during vCPU creation. The paths that query >ARCH_CAPABILITIES aren't particularly performance sensitive, but creating >vCPUs is a frequent enough operation that burning 8 bytes is a good >trade-off. > >Alternatively, KVM could add a field in kvm_caps and thus skip the >on-demand calculations entirely, but a pure snapshot isn't possible due to >the way KVM handles the l1tf_vmx_mitigation module param. And unlike the >other "supported" fields in kvm_caps, KVM doesn't enforce the "supported" >value, i.e. KVM treats ARCH_CAPABILITIES like a CPUID leaf and lets >userspace advertise whatever it wants. Those problems are solvable, but >it's not clear there is real benefit versus snapshotting the host value, >and grabbing the host value will allow additional cleanup of KVM's >FB_CLEAR_CTRL code. > >Link: https://lore.kernel.org/all/20230524061634.54141-2-chao.gao@xxxxxxxxx >Cc: Chao Gao <chao.gao@xxxxxxxxx> >Cc: Xiaoyao Li <xiaoyao.li@xxxxxxxxx> >Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> Reviewed-by: Chao Gao <chao.gao@xxxxxxxxx>