]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/cpufeatures: Add a CPU feature bit for MSR immediate form instructions
authorXin Li <xin@zytor.com>
Tue, 5 Aug 2025 20:22:19 +0000 (13:22 -0700)
committerSean Christopherson <seanjc@google.com>
Tue, 19 Aug 2025 18:59:44 +0000 (11:59 -0700)
The immediate form of MSR access instructions are primarily motivated
by performance, not code size: by having the MSR number in an immediate,
it is available *much* earlier in the pipeline, which allows the
hardware much more leeway about how a particular MSR is handled.

Use a scattered CPU feature bit for MSR immediate form instructions.

Suggested-by: Borislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Link: https://lore.kernel.org/r/20250805202224.1475590-2-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/include/asm/cpufeatures.h
arch/x86/kernel/cpu/scattered.c

index 06fc0479a23f01e5a65526fc185713294013f793..eb859299d5144150e9a22d1f6cb44d5d2471adc8 100644 (file)
 #define X86_FEATURE_TSA_SQ_NO          (21*32+11) /* AMD CPU not vulnerable to TSA-SQ */
 #define X86_FEATURE_TSA_L1_NO          (21*32+12) /* AMD CPU not vulnerable to TSA-L1 */
 #define X86_FEATURE_CLEAR_CPU_BUF_VM   (21*32+13) /* Clear CPU buffers using VERW before VMRUN */
+#define X86_FEATURE_MSR_IMM            (21*32+14) /* MSR immediate form instructions */
 
 /*
  * BUG word(s)
index 6b868afb26c3198f0591690906141e9d46caf8b7..cf4ae822bcc0cf7a68344b8bdbb6db6bff338d59 100644 (file)
@@ -27,6 +27,7 @@ static const struct cpuid_bit cpuid_bits[] = {
        { X86_FEATURE_APERFMPERF,               CPUID_ECX,  0, 0x00000006, 0 },
        { X86_FEATURE_EPB,                      CPUID_ECX,  3, 0x00000006, 0 },
        { X86_FEATURE_INTEL_PPIN,               CPUID_EBX,  0, 0x00000007, 1 },
+       { X86_FEATURE_MSR_IMM,                  CPUID_ECX,  5, 0x00000007, 1 },
        { X86_FEATURE_APX,                      CPUID_EDX, 21, 0x00000007, 1 },
        { X86_FEATURE_RRSBA_CTRL,               CPUID_EDX,  2, 0x00000007, 2 },
        { X86_FEATURE_BHI_CTRL,                 CPUID_EDX,  4, 0x00000007, 2 },