| From fe48a0bc21b48ce77ca0496aaf02df53a36495a2 Mon Sep 17 00:00:00 2001 |
| From: Kim Phillips <kim.phillips@amd.com> |
| Date: Fri, 17 Apr 2020 09:33:56 -0500 |
| Subject: [PATCH] x86/cpu/amd: Make erratum #1054 a legacy erratum |
| |
| commit e2abfc0448a46d8a137505aa180caf14070ec535 upstream. |
| |
| Commit |
| |
| 21b5ee59ef18 ("x86/cpu/amd: Enable the fixed Instructions Retired |
| counter IRPERF") |
| |
| mistakenly added erratum #1054 as an OS Visible Workaround (OSVW) ID 0. |
| Erratum #1054 is not OSVW ID 0 [1], so make it a legacy erratum. |
| |
| There would never have been a false positive on older hardware that |
| has OSVW bit 0 set, since the IRPERF feature was not available. |
| |
| However, save a couple of RDMSR executions per thread, on modern |
| system configurations that correctly set non-zero values in their |
| OSVW_ID_Length MSRs. |
| |
| [1] Revision Guide for AMD Family 17h Models 00h-0Fh Processors. The |
| revision guide is available from the bugzilla link below. |
| |
| Fixes: 21b5ee59ef18 ("x86/cpu/amd: Enable the fixed Instructions Retired counter IRPERF") |
| Reported-by: Andrew Cooper <andrew.cooper3@citrix.com> |
| Signed-off-by: Kim Phillips <kim.phillips@amd.com> |
| Signed-off-by: Borislav Petkov <bp@suse.de> |
| Link: https://lkml.kernel.org/r/20200417143356.26054-1-kim.phillips@amd.com |
| Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537 |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c |
| index ebe193546e71..fe3649f725dc 100644 |
| --- a/arch/x86/kernel/cpu/amd.c |
| +++ b/arch/x86/kernel/cpu/amd.c |
| @@ -1127,8 +1127,7 @@ static const int amd_erratum_383[] = |
| |
| /* #1054: Instructions Retired Performance Counter May Be Inaccurate */ |
| static const int amd_erratum_1054[] = |
| - AMD_OSVW_ERRATUM(0, AMD_MODEL_RANGE(0x17, 0, 0, 0x2f, 0xf)); |
| - |
| + AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0, 0, 0x2f, 0xf)); |
| |
| static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratum) |
| { |
| -- |
| 2.7.4 |
| |