From: Cody P Schafer <cody@linux.vnet.ibm.com>
To: Linux PPC <linuxppc-dev@lists.ozlabs.org>,
Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
Ingo Molnar <mingo@redhat.com>, Paul Mackerras <paulus@samba.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Peter Zijlstra <peterz@infradead.org>,
LKML <linux-kernel@vger.kernel.org>,
Michael Ellerman <michael@ellerman.id.au>,
scottwood@freescale.com, Cody P Schafer <cody@linux.vnet.ibm.com>
Subject: [PATCH v4 02/11] perf: add PMU_FORMAT_RANGE() helper for use by sw-like pmus
Date: Wed, 5 Mar 2014 16:01:01 -0800 [thread overview]
Message-ID: <1394064082-6242-3-git-send-email-cody@linux.vnet.ibm.com> (raw)
In-Reply-To: <1394064082-6242-1-git-send-email-cody@linux.vnet.ibm.com>
Add PMU_FORMAT_RANGE() and PMU_FORMAT_RANGE_RESERVED() (for reserved
areas) which generate functions to extract the relevent bits from
event->attr.config{,1,2} for use by sw-like pmus where the
'config{,1,2}' values don't map directly to hardware registers.
Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com>
---
include/linux/perf_event.h | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index e56b07f..5c12009 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -871,4 +871,27 @@ _name##_show(struct device *dev, \
\
static struct device_attribute format_attr_##_name = __ATTR_RO(_name)
+#define format_max(name) FORMAT_MAX_(name)()
+#define FORMAT_MAX_(name) format_##name##_max
+
+#define format_get(name, event) FORMAT_GET_(name)(event)
+#define FORMAT_GET_(name) format_get_##name
+
+#define PMU_FORMAT_RANGE(name, attr_var, bit_start, bit_end) \
+PMU_FORMAT_RANGE_RESERVED(name, attr_var, bit_start, bit_end) \
+PMU_FORMAT_ATTR(name, #attr_var ":" #bit_start "-" #bit_end)
+
+#define PMU_FORMAT_RANGE_RESERVED(name, attr_var, bit_start, bit_end) \
+static u64 FORMAT_MAX_(name)(void) \
+{ \
+ BUILD_BUG_ON((bit_start > bit_end) \
+ || (bit_end >= (sizeof(1ull) * 8))); \
+ return (((1ull << (bit_end - bit_start)) - 1) << 1) + 1; \
+} \
+static u64 FORMAT_GET_(name)(struct perf_event *event) \
+{ \
+ return (event->attr.attr_var >> (bit_start)) & \
+ format_max(name); \
+}
+
#endif /* _LINUX_PERF_EVENT_H */
--
1.9.0
next prev parent reply other threads:[~2014-03-06 0:01 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-06 0:00 [PATCH v4 00/11] powerpc: Add support for Power Hypervisor supplied performance counters Cody P Schafer
2014-03-06 0:01 ` [PATCH v4 01/11] sysfs: create bin_attributes under the requested group Cody P Schafer
2014-03-06 0:01 ` Cody P Schafer [this message]
2014-03-06 0:01 ` [PATCH v4 03/11] perf: provide a common perf_event_nop_0() for use with .event_idx Cody P Schafer
2014-03-06 0:01 ` [PATCH v4 04/11] powerpc: add hvcalls for 24x7 and gpci (get performance counter info) Cody P Schafer
2014-03-06 0:01 ` [PATCH v4 05/11] powerpc/perf: add hv_gpci interface header Cody P Schafer
2014-03-06 0:01 ` [PATCH v4 06/11] powerpc/perf: add 24x7 interface headers Cody P Schafer
2014-03-06 0:01 ` [PATCH v4 07/11] powerpc/perf: add a shared interface to get gpci version and capabilities Cody P Schafer
2014-03-06 0:01 ` [PATCH v4 08/11] powerpc/perf: add support for the hv gpci (get performance counter info) interface Cody P Schafer
2014-03-06 0:01 ` [PATCH v4 09/11] powerpc/perf: add support for the hv 24x7 interface Cody P Schafer
2014-03-25 10:43 ` Anton Blanchard
2014-03-25 18:19 ` Cody P Schafer
2014-03-25 18:32 ` Cody P Schafer
2014-03-26 9:43 ` David Laight
2014-05-22 8:19 ` Ian Munsie
2014-05-22 22:22 ` Cody P Schafer
2014-05-22 22:29 ` [PATCH] powerpc/perf/hv-24x7: use kmem_cache instead of aligned stack allocations Cody P Schafer
2014-05-22 22:38 ` Stephen Rothwell
2014-05-22 22:43 ` Cody P Schafer
2014-05-22 22:44 ` [PATCH v2] " Cody P Schafer
2014-05-22 23:49 ` Stephen Rothwell
2014-05-22 23:54 ` Cody P Schafer
2014-05-23 0:20 ` Stephen Rothwell
2014-03-06 0:01 ` [PATCH v4 10/11] powerpc/perf: add kconfig option for hypervisor provided counters Cody P Schafer
2014-03-06 0:01 ` [PATCH v4 11/11] powerpc/perf/hv_{gpci, 24x7}: add documentation of device attributes Cody P Schafer
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=1394064082-6242-3-git-send-email-cody@linux.vnet.ibm.com \
--to=cody@linux.vnet.ibm.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@ghostprotocols.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=michael@ellerman.id.au \
--cc=mingo@redhat.com \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=scottwood@freescale.com \
/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).