perf: provide sysfs_show for struct perf_pmu_events_attr
authorCody P Schafer <cody@linux.vnet.ibm.com>
Fri, 30 Jan 2015 21:45:57 +0000 (13:45 -0800)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 2 Feb 2015 06:56:36 +0000 (17:56 +1100)
(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>
include/linux/perf_event.h
kernel/events/core.c

index 486e84ccb1f92545ec0d4f74aaa153abf0ff8049..58f59bdb590bead7b0fc9f15e6099977a337c514 100644 (file)
@@ -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),                       \
index 4c1ee7f2bebc4bfb1434fe472f0d66f120f8cdc0..934687f8d51b53fa19c6222398ecce63f9202534 100644 (file)
@@ -8276,6 +8276,18 @@ 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);
+
+       if (pmu_attr->event_str)
+               return sprintf(page, "%s\n", pmu_attr->event_str);
+
+       return 0;
+}
+
 static int __init perf_event_sysfs_init(void)
 {
        struct pmu *pmu;