perf/x86/intel/uncore: Remove ev_sel_ext bit support for PCU
authorKan Liang <kan.liang@intel.com>
Sun, 20 Mar 2016 18:58:21 +0000 (11:58 -0700)
committerIngo Molnar <mingo@kernel.org>
Mon, 21 Mar 2016 10:16:19 +0000 (11:16 +0100)
The ev_sel_ext in PCU_MSR_PMON_CTL is locked on some CPU models, so despite
it being documented in the SDM, if we write 1 to that bit then we can get a #GP
fault.

Which #GP the perf fuzzer happily triggered in Peter Zijlstra's testing.

Also, there are no public events which use that bit, so remove ev_sel_ext
bit support for PCU.

Reported-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Kan Liang <kan.liang@intel.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Link: http://lkml.kernel.org/r/1458500301-3594-1-git-send-email-kan.liang@intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/events/intel/uncore_snbep.c

index 93f6bd9bf7610ea204046368837d279ac1ce1c17..ab2bcaaebe38d464ab7863c901ac41fc7b847711 100644 (file)
@@ -46,7 +46,6 @@
                                (SNBEP_PMON_CTL_EV_SEL_MASK | \
                                 SNBEP_PCU_MSR_PMON_CTL_OCC_SEL_MASK | \
                                 SNBEP_PMON_CTL_EDGE_DET | \
-                                SNBEP_PMON_CTL_EV_SEL_EXT | \
                                 SNBEP_PMON_CTL_INVERT | \
                                 SNBEP_PCU_MSR_PMON_CTL_TRESH_MASK | \
                                 SNBEP_PCU_MSR_PMON_CTL_OCC_INVERT | \
 /* IVBEP PCU */
 #define IVBEP_PCU_MSR_PMON_RAW_EVENT_MASK      \
                                (SNBEP_PMON_CTL_EV_SEL_MASK | \
-                                SNBEP_PMON_CTL_EV_SEL_EXT | \
                                 SNBEP_PCU_MSR_PMON_CTL_OCC_SEL_MASK | \
                                 SNBEP_PMON_CTL_EDGE_DET | \
                                 SNBEP_PCU_MSR_PMON_CTL_TRESH_MASK | \
                                 SNBEP_PCU_MSR_PMON_CTL_OCC_SEL_MASK | \
                                 SNBEP_PMON_CTL_EDGE_DET | \
                                 SNBEP_CBO_PMON_CTL_TID_EN | \
-                                SNBEP_PMON_CTL_EV_SEL_EXT | \
                                 SNBEP_PMON_CTL_INVERT | \
                                 KNL_PCU_MSR_PMON_CTL_TRESH_MASK | \
                                 SNBEP_PCU_MSR_PMON_CTL_OCC_INVERT | \
@@ -472,7 +469,7 @@ static struct attribute *snbep_uncore_cbox_formats_attr[] = {
 };
 
 static struct attribute *snbep_uncore_pcu_formats_attr[] = {
-       &format_attr_event_ext.attr,
+       &format_attr_event.attr,
        &format_attr_occ_sel.attr,
        &format_attr_edge.attr,
        &format_attr_inv.attr,
@@ -1313,7 +1310,7 @@ static struct attribute *ivbep_uncore_cbox_formats_attr[] = {
 };
 
 static struct attribute *ivbep_uncore_pcu_formats_attr[] = {
-       &format_attr_event_ext.attr,
+       &format_attr_event.attr,
        &format_attr_occ_sel.attr,
        &format_attr_edge.attr,
        &format_attr_thresh5.attr,