perf/x86/intel/uncore: Remove ev_sel_ext bit support for PCU
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>
This commit is contained in:
parent
c7ab62bfbe
commit
cb2252522a
|
@ -46,7 +46,6 @@
|
||||||
(SNBEP_PMON_CTL_EV_SEL_MASK | \
|
(SNBEP_PMON_CTL_EV_SEL_MASK | \
|
||||||
SNBEP_PCU_MSR_PMON_CTL_OCC_SEL_MASK | \
|
SNBEP_PCU_MSR_PMON_CTL_OCC_SEL_MASK | \
|
||||||
SNBEP_PMON_CTL_EDGE_DET | \
|
SNBEP_PMON_CTL_EDGE_DET | \
|
||||||
SNBEP_PMON_CTL_EV_SEL_EXT | \
|
|
||||||
SNBEP_PMON_CTL_INVERT | \
|
SNBEP_PMON_CTL_INVERT | \
|
||||||
SNBEP_PCU_MSR_PMON_CTL_TRESH_MASK | \
|
SNBEP_PCU_MSR_PMON_CTL_TRESH_MASK | \
|
||||||
SNBEP_PCU_MSR_PMON_CTL_OCC_INVERT | \
|
SNBEP_PCU_MSR_PMON_CTL_OCC_INVERT | \
|
||||||
|
@ -148,7 +147,6 @@
|
||||||
/* IVBEP PCU */
|
/* IVBEP PCU */
|
||||||
#define IVBEP_PCU_MSR_PMON_RAW_EVENT_MASK \
|
#define IVBEP_PCU_MSR_PMON_RAW_EVENT_MASK \
|
||||||
(SNBEP_PMON_CTL_EV_SEL_MASK | \
|
(SNBEP_PMON_CTL_EV_SEL_MASK | \
|
||||||
SNBEP_PMON_CTL_EV_SEL_EXT | \
|
|
||||||
SNBEP_PCU_MSR_PMON_CTL_OCC_SEL_MASK | \
|
SNBEP_PCU_MSR_PMON_CTL_OCC_SEL_MASK | \
|
||||||
SNBEP_PMON_CTL_EDGE_DET | \
|
SNBEP_PMON_CTL_EDGE_DET | \
|
||||||
SNBEP_PCU_MSR_PMON_CTL_TRESH_MASK | \
|
SNBEP_PCU_MSR_PMON_CTL_TRESH_MASK | \
|
||||||
|
@ -258,7 +256,6 @@
|
||||||
SNBEP_PCU_MSR_PMON_CTL_OCC_SEL_MASK | \
|
SNBEP_PCU_MSR_PMON_CTL_OCC_SEL_MASK | \
|
||||||
SNBEP_PMON_CTL_EDGE_DET | \
|
SNBEP_PMON_CTL_EDGE_DET | \
|
||||||
SNBEP_CBO_PMON_CTL_TID_EN | \
|
SNBEP_CBO_PMON_CTL_TID_EN | \
|
||||||
SNBEP_PMON_CTL_EV_SEL_EXT | \
|
|
||||||
SNBEP_PMON_CTL_INVERT | \
|
SNBEP_PMON_CTL_INVERT | \
|
||||||
KNL_PCU_MSR_PMON_CTL_TRESH_MASK | \
|
KNL_PCU_MSR_PMON_CTL_TRESH_MASK | \
|
||||||
SNBEP_PCU_MSR_PMON_CTL_OCC_INVERT | \
|
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[] = {
|
static struct attribute *snbep_uncore_pcu_formats_attr[] = {
|
||||||
&format_attr_event_ext.attr,
|
&format_attr_event.attr,
|
||||||
&format_attr_occ_sel.attr,
|
&format_attr_occ_sel.attr,
|
||||||
&format_attr_edge.attr,
|
&format_attr_edge.attr,
|
||||||
&format_attr_inv.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[] = {
|
static struct attribute *ivbep_uncore_pcu_formats_attr[] = {
|
||||||
&format_attr_event_ext.attr,
|
&format_attr_event.attr,
|
||||||
&format_attr_occ_sel.attr,
|
&format_attr_occ_sel.attr,
|
||||||
&format_attr_edge.attr,
|
&format_attr_edge.attr,
|
||||||
&format_attr_thresh5.attr,
|
&format_attr_thresh5.attr,
|
||||||
|
|
Loading…
Reference in New Issue