瀏覽代碼

arm64: perf: add format entry to describe event -> config mapping

It's all very well providing an events directory to userspace that
details our events in terms of "event=0xNN", but if we don't define how
to encode the "event" field in the perf attr.config, then it's a waste
of time.

This patch adds a single format entry to describe that the event field
occupies the bottom 10 bits of our config field on ARMv8 (PMUv3).

Signed-off-by: Will Deacon <will.deacon@arm.com>
Will Deacon 9 年之前
父節點
當前提交
57d7412395
共有 1 個文件被更改,包括 16 次插入2 次删除
  1. 16 2
      arch/arm64/kernel/perf_event.c

+ 16 - 2
arch/arm64/kernel/perf_event.c

@@ -297,7 +297,7 @@ static struct attribute *armv8_pmuv3_event_attrs[] = {
 	&armv8_event_attr_l21_tlb_refill.attr.attr,
 	&armv8_event_attr_l2d_tlb.attr.attr,
 	&armv8_event_attr_l21_tlb.attr.attr,
-	NULL
+	NULL,
 };
 
 static struct attribute_group armv8_pmuv3_events_attr_group = {
@@ -305,11 +305,25 @@ static struct attribute_group armv8_pmuv3_events_attr_group = {
 	.attrs = armv8_pmuv3_event_attrs,
 };
 
+PMU_FORMAT_ATTR(event, "config:0-9");
+
+static struct attribute *armv8_pmuv3_format_attrs[] = {
+	&format_attr_event.attr,
+	NULL,
+};
+
+static struct attribute_group armv8_pmuv3_format_attr_group = {
+	.name = "format",
+	.attrs = armv8_pmuv3_format_attrs,
+};
+
 static const struct attribute_group *armv8_pmuv3_attr_groups[] = {
 	&armv8_pmuv3_events_attr_group,
-	NULL
+	&armv8_pmuv3_format_attr_group,
+	NULL,
 };
 
+
 /*
  * Perf Events' indices
  */