summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPerry Yuan <perry.yuan@amd.com>2025-06-09 15:05:14 -0500
committerBorislav Petkov (AMD) <bp@alien8.de>2025-07-07 22:30:36 +0200
commit9e8f6bf782a96d45a25ef9bc17db06bafb6b3e21 (patch)
treea30f272f466019151c8a3e328d972bebb78b2d7b
parent263e66f9c35922d0cfd961df6d7a492820143792 (diff)
x86/process: Clear hardware feedback history for AMD processors
Incorporate a mechanism within the context switching code to reset the hardware history for AMD processors. Specifically, when a task is switched in, the class ID is read and the hardware workload classification history of the CPU firmware is reset. Then, the workload classification for the next running thread is begun. [ bp: Massage commit message. ] Signed-off-by: Perry Yuan <perry.yuan@amd.com> Co-developed-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Acked-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Link: https://lore.kernel.org/20250609200518.3616080-10-superm1@kernel.org
-rw-r--r--arch/x86/kernel/process_64.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index b972bf72fb8b..52a5c03c353c 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -707,6 +707,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
/* Load the Intel cache allocation PQR MSR. */
resctrl_arch_sched_in(next_p);
+ /* Reset hw history on AMD CPUs */
+ if (cpu_feature_enabled(X86_FEATURE_AMD_WORKLOAD_CLASS))
+ wrmsrl(MSR_AMD_WORKLOAD_HRST, 0x1);
+
return prev_p;
}