From: Cody P Schafer <cody@linux.vnet.ibm.com>
To: Michael Ellerman <mpe@ellerman.id.au>,
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: LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 01/11] perf: add PMU_RANGE_ATTR() helper for use by sw-like pmus
Date: Tue, 25 Feb 2014 14:19:14 -0800 [thread overview]
Message-ID: <530D16E2.9060108@linux.vnet.ibm.com> (raw)
In-Reply-To: <530CFE30.70803@linux.vnet.ibm.com>
On 02/25/2014 12:33 PM, Cody P Schafer wrote:
> On 02/24/2014 07:33 PM, Michael Ellerman wrote:
>> On Fri, 2014-14-02 at 22:02:05 UTC, Cody P Schafer wrote:
>>> Add PMU_RANGE_ATTR() and PMU_RANGE_RESV() (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 | 17 +++++++++++++++++
>>> 1 file changed, 17 insertions(+)
>>>
>>> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
>>> index e56b07f..2702e91 100644
>>> --- a/include/linux/perf_event.h
>>> +++ b/include/linux/perf_event.h
>>> @@ -871,4 +871,21 @@ _name##_show(struct device
>>> *dev, \
>>> \
>>> static struct device_attribute format_attr_##_name = __ATTR_RO(_name)
>>>
>>> +#define PMU_RANGE_ATTR(name, attr_var, bit_start, bit_end) \
>>> +PMU_FORMAT_ATTR(name, #attr_var ":" #bit_start "-" #bit_end); \
>>> +PMU_RANGE_RESV(name, attr_var, bit_start, bit_end)
>>> +
>>> +#define PMU_RANGE_RESV(name, attr_var, bit_start, bit_end) \
>>> +static u64 event_get_##name##_max(void) \
>>> +{ \
>>> + int bits = (bit_end) - (bit_start) + 1; \
>>> + return ((0x1ULL << (bits - 1ULL)) - 1ULL) | \
>>> + (0xFULL << (bits - 4ULL)); \
>>> +} \
>>> +static u64 event_get_##name(struct perf_event *event) \
>>> +{ \
>>> + return (event->attr.attr_var >> (bit_start)) & \
>>> + event_get_##name##_max(); \
>>> +}
>>
>> I still don't like the names.
>>
>> EVENT_GETTER_AND_FORMAT()
>
> EVENT_RANGE()
>
> I'd prefer to describe the intended usage rather than what is generated
> both in case we change some of the specifics later, and to provide
> additional information to the developers beyond what a simple code
> reading gives.
>
>> EVENT_RESERVED()
>
> Sure. The PMU_* naming was just based on the PMU_FORMAT_ATTR() naming,
> so I kept it for continuity with the existing API. Maybe
> EVENT_RANGE_RESERVED() would be more appropriate?
>
Thinking about this a bit more, EVENT_RANGE() and EVENT_RANGE_RESERVED()
aren't quite ideal either. The "EVENT" name collides with the files we
put in the event/ dir, which these macros generate files for the format/
dir. Maybe:
FORMAT_RANGE() and FORMAT_RANGE_RESERVED()
or
PMU_FORMAT_RANGE(), PMU_FORMAT_RANGE_RESERVED()
next prev parent reply other threads:[~2014-02-25 22:19 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-14 22:02 [PATCH v2 00/11] powerpc: Add support for Power Hypervisor supplied performance counters Cody P Schafer
2014-02-14 22:02 ` [PATCH v2 01/11] perf: add PMU_RANGE_ATTR() helper for use by sw-like pmus Cody P Schafer
2014-02-25 3:33 ` Michael Ellerman
2014-02-25 20:33 ` Cody P Schafer
2014-02-25 22:19 ` Cody P Schafer [this message]
2014-02-14 22:02 ` [PATCH v2 02/11] perf core: export swevent hrtimer helpers Cody P Schafer
2014-02-25 3:33 ` Michael Ellerman
2014-02-25 10:20 ` Peter Zijlstra
2014-02-25 21:38 ` Cody P Schafer
2014-02-26 8:29 ` Peter Zijlstra
2014-02-27 19:33 ` Cody P Schafer
2014-02-14 22:02 ` [PATCH v2 03/11] sysfs: create bin_attributes under the requested group Cody P Schafer
2014-02-15 20:15 ` Greg Kroah-Hartman
2014-02-25 3:33 ` Michael Ellerman
2014-02-14 22:02 ` [PATCH v2 04/11] powerpc: add hvcalls for 24x7 and gpci (get performance counter info) Cody P Schafer
2014-02-25 3:33 ` Michael Ellerman
2014-02-25 21:13 ` Cody P Schafer
2014-02-14 22:02 ` [PATCH v2 05/11] powerpc: add hv_gpci interface header Cody P Schafer
2014-02-25 3:33 ` Michael Ellerman
2014-02-25 20:35 ` Cody P Schafer
2014-02-14 22:02 ` [PATCH v2 06/11] powerpc: add 24x7 " Cody P Schafer
2014-02-14 22:02 ` [PATCH v2 07/11] powerpc: add a shared interface to get gpci version and capabilities Cody P Schafer
2014-02-25 3:33 ` Michael Ellerman
2014-02-25 21:20 ` Cody P Schafer
2014-02-14 22:02 ` [PATCH v2 08/11] powerpc/perf: add support for the hv gpci (get performance counter info) interface Cody P Schafer
2014-02-25 3:33 ` Michael Ellerman
2014-02-25 21:25 ` Cody P Schafer
2014-02-14 22:02 ` [PATCH v2 09/11] powerpc/perf: add support for the hv 24x7 interface Cody P Schafer
2014-02-25 3:33 ` Michael Ellerman
2014-02-25 20:55 ` Cody P Schafer
2014-02-14 22:02 ` [PATCH v2 10/11] powerpc/perf: add kconfig option for hypervisor provided counters Cody P Schafer
[not found] ` <1392417133.6733.624.camel@snotra.buserror.net>
2014-02-15 0:25 ` Cody P Schafer
2014-02-17 7:11 ` Michael Ellerman
2014-02-17 19:41 ` Cody P Schafer
2014-02-21 0:14 ` [PATCH v2.1 9/11] " Cody P Schafer
2014-02-21 0:24 ` Cody P Schafer
2014-02-25 3:33 ` [PATCH v2 10/11] " Michael Ellerman
2014-02-25 21:31 ` Cody P Schafer
2014-02-26 3:48 ` Michael Ellerman
2014-02-14 22:02 ` [PATCH v2 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=530D16E2.9060108@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=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.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).