]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/cpufeatures: Add AMD CPPC Performance Priority feature.
authorGautham R. Shenoy <gautham.shenoy@amd.com>
Thu, 26 Mar 2026 11:47:48 +0000 (17:17 +0530)
committerMario Limonciello (AMD) <superm1@kernel.org>
Thu, 2 Apr 2026 16:28:21 +0000 (11:28 -0500)
Some future AMD processors have feature named "CPPC Performance
Priority" which lets userspace specify different floor performance
levels for different CPUs. The platform firmware takes these different
floor performance levels into consideration while throttling the CPUs
under power/thermal constraints. The presence of this feature is
indicated by bit 16 of the EDX register for CPUID leaf
0x80000007. More details can be found in AMD Publication titled "AMD64
Collaborative Processor Performance Control (CPPC) Performance
Priority" Revision 1.10.

Define a new feature bit named X86_FEATURE_CPPC_PERF_PRIO to map to
CPUID 0x80000007.EDX[16].

Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
arch/x86/include/asm/cpufeatures.h
arch/x86/kernel/cpu/scattered.c
tools/arch/x86/include/asm/cpufeatures.h

index dbe104df339b8c4d567949f5463e77e147b8d0d4..86d17b195e7944b83ebb1128ef53a77e3fc38903 100644 (file)
  */
 #define X86_FEATURE_OVERFLOW_RECOV     (17*32+ 0) /* "overflow_recov" MCA overflow recovery support */
 #define X86_FEATURE_SUCCOR             (17*32+ 1) /* "succor" Uncorrectable error containment and recovery */
-
+#define X86_FEATURE_CPPC_PERF_PRIO     (17*32+ 2) /* CPPC Floor Perf support */
 #define X86_FEATURE_SMCA               (17*32+ 3) /* "smca" Scalable MCA */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:0 (EDX), word 18 */
index 42c7eac0c387b61a855e31106273a643a538eab3..837d6a4b0c282657287e89adfa51aa72ab304e7b 100644 (file)
@@ -52,6 +52,7 @@ static const struct cpuid_bit cpuid_bits[] = {
        { X86_FEATURE_CPB,                      CPUID_EDX,  9, 0x80000007, 0 },
        { X86_FEATURE_PROC_FEEDBACK,            CPUID_EDX, 11, 0x80000007, 0 },
        { X86_FEATURE_AMD_FAST_CPPC,            CPUID_EDX, 15, 0x80000007, 0 },
+       { X86_FEATURE_CPPC_PERF_PRIO,           CPUID_EDX, 16, 0x80000007, 0 },
        { X86_FEATURE_MBA,                      CPUID_EBX,  6, 0x80000008, 0 },
        { X86_FEATURE_X2AVIC_EXT,               CPUID_ECX,  6, 0x8000000a, 0 },
        { X86_FEATURE_COHERENCY_SFW_NO,         CPUID_EBX, 31, 0x8000001f, 0 },
index dbe104df339b8c4d567949f5463e77e147b8d0d4..86d17b195e7944b83ebb1128ef53a77e3fc38903 100644 (file)
  */
 #define X86_FEATURE_OVERFLOW_RECOV     (17*32+ 0) /* "overflow_recov" MCA overflow recovery support */
 #define X86_FEATURE_SUCCOR             (17*32+ 1) /* "succor" Uncorrectable error containment and recovery */
-
+#define X86_FEATURE_CPPC_PERF_PRIO     (17*32+ 2) /* CPPC Floor Perf support */
 #define X86_FEATURE_SMCA               (17*32+ 3) /* "smca" Scalable MCA */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:0 (EDX), word 18 */