x86: Expose SERIALIZE for supported cpuid
authorPaolo Bonzini <pbonzini@redhat.com>
Sun, 9 Aug 2020 17:04:56 +0000 (13:04 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Sun, 9 Aug 2020 17:08:54 +0000 (13:08 -0400)
The SERIALIZE instruction is supported by Tntel processors, like
Sapphire Rapids.  SERIALIZE is a faster serializing instruction which
does not modify registers, arithmetic flags or memory, will not cause VM
exit. It's availability is indicated by CPUID.(EAX=7,ECX=0):ECX[bit 14].

Expose it in KVM supported CPUID.  This way, KVM could pass this
information to guests and they can make use of these features accordingly.

Signed-off-by: Cathy Zhang <cathy.zhang@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/cpuid.c

index fa873e3e6e90e601c23e03b8c16effece08ac217..3fd6eec202d7a63e5e16540e3be94d795defcb1c 100644 (file)
@@ -370,7 +370,8 @@ void kvm_set_cpu_caps(void)
        kvm_cpu_cap_mask(CPUID_7_EDX,
                F(AVX512_4VNNIW) | F(AVX512_4FMAPS) | F(SPEC_CTRL) |
                F(SPEC_CTRL_SSBD) | F(ARCH_CAPABILITIES) | F(INTEL_STIBP) |
-               F(MD_CLEAR) | F(AVX512_VP2INTERSECT) | F(FSRM)
+               F(MD_CLEAR) | F(AVX512_VP2INTERSECT) | F(FSRM) |
+               F(SERIALIZE)
        );
 
        /* TSC_ADJUST and ARCH_CAPABILITIES are emulated in software. */