ARM: perf: fully support Krait CPU PMU events
authorStephen Boyd <sboyd@codeaurora.org>
Fri, 7 Feb 2014 21:01:23 +0000 (13:01 -0800)
committerWill Deacon <will.deacon@arm.com>
Fri, 21 Feb 2014 11:11:15 +0000 (11:11 +0000)
commitb7aafe9928beda2ed2c1a3035a1bed878f0cb2ab
tree9ed5e1472c7d55241eb99a6ce482045ccfa95b48
parenteab443ef391d18772710dc2c156f7ee05e51f754
ARM: perf: fully support Krait CPU PMU events

Krait supports a set of performance monitor region event
selection registers (PMRESR) sitting behind a cp15 based
interface that extend the architected PMU events to include Krait
CPU and Venum VFP specific events. To use these events the user
is expected to program the region register (PMRESRn) with the
event code shifted into the group they care about and then point
the PMNx event at that region+group combo by writing a
PMRESRn_GROUPx event. Add support for this hardware.

Note: the raw event number is a pure software construct that
allows us to map the multi-dimensional number space of regions,
groups, and event codes into a flat event number space suitable
for use by the perf framework.

This is based on code originally written by Ashwin Chaugule and
Neil Leeder [1].

[1] https://www.codeaurora.org/cgit/quic/la/kernel/msm/tree/arch/arm/kernel/perf_event_msm_krait.c?h=msm-3.4

Cc: Neil Leeder <nleeder@codeaurora.org>
Cc: Ashwin Chaugule <ashwinc@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm/kernel/perf_event_v7.c