aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCody P Schafer <cody@linux.vnet.ibm.com>2015-01-30 16:45:57 -0500
committerMichael Ellerman <mpe@ellerman.id.au>2015-02-02 01:56:36 -0500
commitfd979c0132074856975a6e79bc2226b99435ec5b (patch)
treead01ab6039dec30b6e1180759b435f84cd2780b0
parentfe12545e7650de5332b5522a62686fab8bafc733 (diff)
perf: provide sysfs_show for struct perf_pmu_events_attr
(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. Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com> Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Acked-by: Jiri Olsa <jolsa@redhat.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r--include/linux/perf_event.h3
-rw-r--r--kernel/events/core.c12
2 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 486e84ccb1f9..58f59bdb590b 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -897,6 +897,9 @@ struct perf_pmu_events_attr {
897 const char *event_str; 897 const char *event_str;
898}; 898};
899 899
900ssize_t perf_event_sysfs_show(struct device *dev, struct device_attribute *attr,
901 char *page);
902
900#define PMU_EVENT_ATTR(_name, _var, _id, _show) \ 903#define PMU_EVENT_ATTR(_name, _var, _id, _show) \
901static struct perf_pmu_events_attr _var = { \ 904static struct perf_pmu_events_attr _var = { \
902 .attr = __ATTR(_name, 0444, _show, NULL), \ 905 .attr = __ATTR(_name, 0444, _show, NULL), \
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 4c1ee7f2bebc..934687f8d51b 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -8276,6 +8276,18 @@ void __init perf_event_init(void)
8276 != 1024); 8276 != 1024);
8277} 8277}
8278 8278
8279ssize_t perf_event_sysfs_show(struct device *dev, struct device_attribute *attr,
8280 char *page)
8281{
8282 struct perf_pmu_events_attr *pmu_attr =
8283 container_of(attr, struct perf_pmu_events_attr, attr);
8284
8285 if (pmu_attr->event_str)
8286 return sprintf(page, "%s\n", pmu_attr->event_str);
8287
8288 return 0;
8289}
8290
8279static int __init perf_event_sysfs_init(void) 8291static int __init perf_event_sysfs_init(void)
8280{ 8292{
8281 struct pmu *pmu; 8293 struct pmu *pmu;