Commit 7b8e6da4 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar

perf/x86/p4: Add format attributes

Steven reported his P4 not booting properly, the missing format
attributes cause a NULL ptr deref. Cure this by adding the
missing format specification.

I took the format description out of the comment near
p4_config_pack*() and hope that comment is still relatively
accurate.
Reported-by: default avatarSteven Rostedt <rostedt@goodmis.org>
Reported-by: default avatarBruno Prémont <bonbons@linux-vserver.org>
Tested-by: default avatarSteven Rostedt <rostedt@goodmis.org>
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Lin Ming <ming.m.lin@intel.com>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1332859842.16159.227.camel@twinsSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 6308191f
...@@ -1271,6 +1271,17 @@ static int p4_pmu_schedule_events(struct cpu_hw_events *cpuc, int n, int *assign ...@@ -1271,6 +1271,17 @@ static int p4_pmu_schedule_events(struct cpu_hw_events *cpuc, int n, int *assign
return num ? -EINVAL : 0; return num ? -EINVAL : 0;
} }
PMU_FORMAT_ATTR(cccr, "config:0-31" );
PMU_FORMAT_ATTR(escr, "config:32-62");
PMU_FORMAT_ATTR(ht, "config:63" );
static struct attribute *intel_p4_formats_attr[] = {
&format_attr_cccr.attr,
&format_attr_escr.attr,
&format_attr_ht.attr,
NULL,
};
static __initconst const struct x86_pmu p4_pmu = { static __initconst const struct x86_pmu p4_pmu = {
.name = "Netburst P4/Xeon", .name = "Netburst P4/Xeon",
.handle_irq = p4_pmu_handle_irq, .handle_irq = p4_pmu_handle_irq,
...@@ -1305,6 +1316,8 @@ static __initconst const struct x86_pmu p4_pmu = { ...@@ -1305,6 +1316,8 @@ static __initconst const struct x86_pmu p4_pmu = {
* the former idea is taken from OProfile code * the former idea is taken from OProfile code
*/ */
.perfctr_second_write = 1, .perfctr_second_write = 1,
.format_attrs = intel_p4_formats_attr,
}; };
__init int p4_pmu_init(void) __init int p4_pmu_init(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment