Thread (10 messages) 10 messages, 2 authors, 2015-01-23

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help