arm64/perf: Filter common events based on PMCEIDn_EL0
authorAshok Kumar <ashoks@broadcom.com>
Thu, 21 Apr 2016 12:58:44 +0000 (05:58 -0700)
committerWill Deacon <will.deacon@arm.com>
Mon, 25 Apr 2016 13:11:10 +0000 (14:11 +0100)
commit4b1a9e6934ec6e38138c66c2f73cf6f3695a9c6c
tree06a250a1e8a492379b105ce5b94d7b2c6140790e
parentbf2d4782e7500b6e3e6f606b17b596751bc14013
arm64/perf: Filter common events based on PMCEIDn_EL0

The complete common architectural and micro-architectural
event number structure is filtered based on PMCEIDn_EL0 and
exposed to /sys using is_visibile function pointer in events
attribute_group.
To filter the events in is_visible function, pmceid based bitmap
is stored in arm_pmu structure and the id field from
perf_pmu_events_attr is used to check against the bitmap.

The function which derives event bitmap from PMCEIDn_EL0 is
executed in the cpus, which has the pmu being initialized,
for heterogeneous pmu support.

Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Ashok Kumar <ashoks@broadcom.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/perf_event.c
include/linux/perf/arm_pmu.h