aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2016-05-19 20:09:59 -0400
committerIngo Molnar <mingo@kernel.org>2016-06-03 03:41:25 -0400
commit030ba6cd105c68ce919c5e239853b567490cd059 (patch)
treebf56a2794790b140c58c299c3c564ab02e140017
parenteb12b8ece71cfd4c96df37198b9903fc639768d8 (diff)
perf/x86/intel: Use new topology_max_smt_threads() in HT leak workaround
Now that we have topology_max_smt_threads() use it to detect the HT workarounds for older CPUs. Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vince Weaver <vincent.weaver@maine.edu> Cc: acme@kernel.org Cc: jolsa@kernel.org Link: http://lkml.kernel.org/r/1463703002-19686-6-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--arch/x86/events/intel/core.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index 593b1676b5d1..5081b4cdad0d 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -3989,16 +3989,14 @@ __init int intel_pmu_init(void)
3989 */ 3989 */
3990static __init int fixup_ht_bug(void) 3990static __init int fixup_ht_bug(void)
3991{ 3991{
3992 int cpu = smp_processor_id(); 3992 int c;
3993 int w, c;
3994 /* 3993 /*
3995 * problem not present on this CPU model, nothing to do 3994 * problem not present on this CPU model, nothing to do
3996 */ 3995 */
3997 if (!(x86_pmu.flags & PMU_FL_EXCL_ENABLED)) 3996 if (!(x86_pmu.flags & PMU_FL_EXCL_ENABLED))
3998 return 0; 3997 return 0;
3999 3998
4000 w = cpumask_weight(topology_sibling_cpumask(cpu)); 3999 if (topology_max_smt_threads() > 1) {
4001 if (w > 1) {
4002 pr_info("PMU erratum BJ122, BV98, HSD29 worked around, HT is on\n"); 4000 pr_info("PMU erratum BJ122, BV98, HSD29 worked around, HT is on\n");
4003 return 0; 4001 return 0;
4004 } 4002 }