Message ID | 1359653128-10433-23-git-send-email-acme@infradead.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote: > From: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> > > Rename EVENT_ATTR() to PMU_EVENT_ATTR() and make it global so it is > available to all architectures. > > Further to allow architectures flexibility, have PMU_EVENT_ATTR() pass > in the variable name as a parameter. > > Changelog[v2] > - [Jiri Olsa] No need to define PMU_EVENT_PTR() > > Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> > Acked-by: Jiri Olsa <jolsa@redhat.com> > Cc: Andi Kleen <ak@linux.intel.com> > Cc: Anton Blanchard <anton@au1.ibm.com> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Jiri Olsa <jolsa@redhat.com> > Cc: Paul Mackerras <paulus@samba.org> > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > Cc: Robert Richter <robert.richter@amd.com> > Cc: Stephane Eranian <eranian@google.com> > Cc: linuxppc-dev@ozlabs.org > Link: http://lkml.kernel.org/r/20130123062422.GC13720@us.ibm.com > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > --- > arch/x86/kernel/cpu/perf_event.c | 13 +++---------- > include/linux/perf_event.h | 11 +++++++++++ > 2 files changed, 14 insertions(+), 10 deletions(-) so this one started conflicting non-trivially with tip:perf/x86 - the pending memory profiling kernel-side bits. Can we merge the memory profiling tooling side bits together with the kernel side bits - or does it need more work? For now I've excluded perf/x86 from tip:master until this is resolved. Thanks, Ingo
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c index 6774c17..c0df5ed2 100644 --- a/arch/x86/kernel/cpu/perf_event.c +++ b/arch/x86/kernel/cpu/perf_event.c @@ -1310,11 +1310,6 @@ static struct attribute_group x86_pmu_format_group = { .attrs = NULL, }; -struct perf_pmu_events_attr { - struct device_attribute attr; - u64 id; -}; - /* * Remove all undefined events (x86_pmu.event_map(id) == 0) * out of events_attr attributes. @@ -1348,11 +1343,9 @@ static ssize_t events_sysfs_show(struct device *dev, struct device_attribute *at #define EVENT_VAR(_id) event_attr_##_id #define EVENT_PTR(_id) &event_attr_##_id.attr.attr -#define EVENT_ATTR(_name, _id) \ -static struct perf_pmu_events_attr EVENT_VAR(_id) = { \ - .attr = __ATTR(_name, 0444, events_sysfs_show, NULL), \ - .id = PERF_COUNT_HW_##_id, \ -}; +#define EVENT_ATTR(_name, _id) \ + PMU_EVENT_ATTR(_name, EVENT_VAR(_id), PERF_COUNT_HW_##_id, \ + events_sysfs_show) EVENT_ATTR(cpu-cycles, CPU_CYCLES ); EVENT_ATTR(instructions, INSTRUCTIONS ); diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 6bfb2faa..42adf01 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -817,6 +817,17 @@ do { \ } while (0) +struct perf_pmu_events_attr { + struct device_attribute attr; + u64 id; +}; + +#define PMU_EVENT_ATTR(_name, _var, _id, _show) \ +static struct perf_pmu_events_attr _var = { \ + .attr = __ATTR(_name, 0444, _show, NULL), \ + .id = _id, \ +}; + #define PMU_FORMAT_ATTR(_name, _format) \ static ssize_t \ _name##_show(struct device *dev, \