arm64: perf: Hook up new events
authorWill Deacon <will.deacon@arm.com>
Fri, 5 Oct 2018 12:33:02 +0000 (13:33 +0100)
committerWill Deacon <will.deacon@arm.com>
Wed, 21 Nov 2018 13:16:34 +0000 (13:16 +0000)
There have been some additional events added to the PMU architecture
since Armv8.0, so expose them via our sysfs infrastructure.

Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/perf_event.c

index a6e17622bad303344173d909dc43a0c40ad237ff..95d40cde3621268ee062ce0af565aeb66b75beb3 100644 (file)
@@ -221,6 +221,18 @@ ARMV8_EVENT_ATTR(l2d_tlb_refill, ARMV8_PMUV3_PERFCTR_L2D_TLB_REFILL);
 ARMV8_EVENT_ATTR(l2i_tlb_refill, ARMV8_PMUV3_PERFCTR_L2I_TLB_REFILL);
 ARMV8_EVENT_ATTR(l2d_tlb, ARMV8_PMUV3_PERFCTR_L2D_TLB);
 ARMV8_EVENT_ATTR(l2i_tlb, ARMV8_PMUV3_PERFCTR_L2I_TLB);
+ARMV8_EVENT_ATTR(remote_access, ARMV8_PMUV3_PERFCTR_REMOTE_ACCESS);
+ARMV8_EVENT_ATTR(ll_cache, ARMV8_PMUV3_PERFCTR_LL_CACHE);
+ARMV8_EVENT_ATTR(ll_cache_miss, ARMV8_PMUV3_PERFCTR_LL_CACHE_MISS);
+ARMV8_EVENT_ATTR(dtlb_walk, ARMV8_PMUV3_PERFCTR_DTLB_WALK);
+ARMV8_EVENT_ATTR(itlb_walk, ARMV8_PMUV3_PERFCTR_ITLB_WALK);
+ARMV8_EVENT_ATTR(ll_cache_rd, ARMV8_PMUV3_PERFCTR_LL_CACHE_RD);
+ARMV8_EVENT_ATTR(ll_cache_miss_rd, ARMV8_PMUV3_PERFCTR_LL_CACHE_MISS_RD);
+ARMV8_EVENT_ATTR(remote_access_rd, ARMV8_PMUV3_PERFCTR_REMOTE_ACCESS_RD);
+ARMV8_EVENT_ATTR(sample_pop, ARMV8_SPE_PERFCTR_SAMPLE_POP);
+ARMV8_EVENT_ATTR(sample_feed, ARMV8_SPE_PERFCTR_SAMPLE_FEED);
+ARMV8_EVENT_ATTR(sample_filtrate, ARMV8_SPE_PERFCTR_SAMPLE_FILTRATE);
+ARMV8_EVENT_ATTR(sample_collision, ARMV8_SPE_PERFCTR_SAMPLE_COLLISION);
 
 static struct attribute *armv8_pmuv3_event_attrs[] = {
        &armv8_event_attr_sw_incr.attr.attr,
@@ -271,6 +283,18 @@ static struct attribute *armv8_pmuv3_event_attrs[] = {
        &armv8_event_attr_l2i_tlb_refill.attr.attr,
        &armv8_event_attr_l2d_tlb.attr.attr,
        &armv8_event_attr_l2i_tlb.attr.attr,
+       &armv8_event_attr_remote_access.attr.attr,
+       &armv8_event_attr_ll_cache.attr.attr,
+       &armv8_event_attr_ll_cache_miss.attr.attr,
+       &armv8_event_attr_dtlb_walk.attr.attr,
+       &armv8_event_attr_itlb_walk.attr.attr,
+       &armv8_event_attr_ll_cache_rd.attr.attr,
+       &armv8_event_attr_ll_cache_miss_rd.attr.attr,
+       &armv8_event_attr_remote_access_rd.attr.attr,
+       &armv8_event_attr_sample_pop.attr.attr,
+       &armv8_event_attr_sample_feed.attr.attr,
+       &armv8_event_attr_sample_filtrate.attr.attr,
+       &armv8_event_attr_sample_collision.attr.attr,
        NULL,
 };