From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/8] arm: perf: add macros for empty event mappings
Date: Tue, 1 Jul 2014 16:11:12 +0100 [thread overview]
Message-ID: <1404227478-9645-3-git-send-email-mark.rutland@arm.com> (raw)
In-Reply-To: <1404227478-9645-1-git-send-email-mark.rutland@arm.com>
We currently map from userspace-ABI standard event numbers to
hardware-specific IDs by use of two arrays, *_perf_map and
*_perf_cache_map. While we use designated initializers to initialize the
events we care about, zero is typically a valid hardware event number,
and thus we have to explicitly initialize unsupported event mappings to a
nonzero value ({HW,CACHE}_OP_UNSUPPORTED).
In the case of the *_cache_map, this requires initialising almost every
entry in a 3-dimensional array to CACHE_OP_UNSUPPORTED, requiring over a
hundred lines to add eleven supported events in the case of Cortex A9.
So as to take up less space and make the tables easier to deal with,
this patch adds two new macros to initialize every entry in these tables
to the *_UNSUPPORTED values. Supported events can be overridden
individually through the use of designated initializers.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
---
arch/arm/include/asm/pmu.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/arch/arm/include/asm/pmu.h b/arch/arm/include/asm/pmu.h
index 748d20d..0b648c5 100644
--- a/arch/arm/include/asm/pmu.h
+++ b/arch/arm/include/asm/pmu.h
@@ -51,6 +51,16 @@ struct arm_pmu_platdata {
#define C(_x) PERF_COUNT_HW_CACHE_##_x
#define CACHE_OP_UNSUPPORTED 0xFFFF
+#define PERF_MAP_ALL_UNSUPPORTED \
+ [0 ... PERF_COUNT_HW_MAX - 1] = HW_OP_UNSUPPORTED
+
+#define PERF_CACHE_MAP_ALL_UNSUPPORTED \
+[0 ... C(MAX) - 1] = { \
+ [0 ... C(OP_MAX) - 1] = { \
+ [0 ... C(RESULT_MAX) - 1] = CACHE_OP_UNSUPPORTED, \
+ }, \
+}
+
/* The events for a given PMU register set. */
struct pmu_hw_events {
/*
--
1.9.1
next prev parent reply other threads:[~2014-07-01 15:11 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-01 15:11 [PATCH 0/8] arm: perf: cleanups and initial refactoring Mark Rutland
2014-07-01 15:11 ` [PATCH 1/8] arm: perf: move event map macros to pmu.h Mark Rutland
2014-07-01 15:11 ` Mark Rutland [this message]
2014-07-01 15:11 ` [PATCH 3/8] arm: perf: armv7: condense event maps Mark Rutland
2014-07-01 15:11 ` [PATCH 4/8] arm: perf: armv6: " Mark Rutland
2014-07-01 15:11 ` [PATCH 5/8] arm: perf: xscale: " Mark Rutland
2014-07-01 15:11 ` [PATCH 6/8] arm: perf: clean up PMU names Mark Rutland
2014-07-01 15:11 ` [PATCH 7/8] arm: perf: add more specific platform device IDs Mark Rutland
2014-07-01 18:06 ` Will Deacon
2014-07-01 15:11 ` [PATCH 8/8] arm: perf: krait: stop using singleton PMU Mark Rutland
2014-07-01 17:40 ` Stephen Boyd
2014-07-01 18:06 ` Will Deacon
2014-07-02 12:46 ` [PATCH 0/8] arm: perf: cleanups and initial refactoring Christopher Covington
2014-07-02 14:45 ` Will Deacon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1404227478-9645-3-git-send-email-mark.rutland@arm.com \
--to=mark.rutland@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).