Re: [PATCH v6 1/7] perf: provide sysfs_show for struct perf_pmu_events_attr
From: Jiri Olsa <hidden>
Date: 2015-01-23 09:47:39
Also in:
lkml
On Sun, Dec 21, 2014 at 11:48:46PM -0800, Sukadev Bhattiprolu wrote:
quoted hunk ↗ jump to hunk
From: Cody P Schafer <redacted> (struct perf_pmu_events_attr) is defined in include/linux/perf_event.h, but the only "show" for it is in x86 and contains x86 specific stuff. Make a generic one for those of us who are just using the event_str. CC: Sukadev Bhattiprolu <redacted> CC: Haren Myneni <redacted> CC: Cody P Schafer <redacted> Signed-off-by: Cody P Schafer <redacted> --- include/linux/perf_event.h | 3 +++ kernel/events/core.c | 8 ++++++++ 2 files changed, 11 insertions(+)diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 486e84c..58f59bd 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h@@ -897,6 +897,9 @@ struct perf_pmu_events_attr { const char *event_str; }; +ssize_t perf_event_sysfs_show(struct device *dev, struct device_attribute *attr, + char *page); + #define PMU_EVENT_ATTR(_name, _var, _id, _show) \ static struct perf_pmu_events_attr _var = { \ .attr = __ATTR(_name, 0444, _show, NULL), \diff --git a/kernel/events/core.c b/kernel/events/core.c index af0a5ba..1808d0e 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c@@ -8276,6 +8276,14 @@ void __init perf_event_init(void) != 1024); } +ssize_t perf_event_sysfs_show(struct device *dev, struct device_attribute *attr, + char *page) +{ + struct perf_pmu_events_attr *pmu_attr = + container_of(attr, struct perf_pmu_events_attr, attr); + return sprintf(page, "%s\n", pmu_attr->event_str); +} +
Stephane just added same local one for RAPL pmu: 433678bdc6ed perf/rapl: Fix sysfs_show() initialization for RAPL PMU with additional pmu_attr->event_str check same for PMU_EVENT_ATTR_STRING macro if you could add this additional check plus the id initialization in the PMU_EVENT_ATTR_STRING macro, we could use the generic version in RAPL object as well thanks, jirka