From: Jiri Olsa <jolsa@redhat.com>
To: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
Paul Mackerras <paulus@samba.org>, Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
Anton Blanchard <anton@au1.ibm.com>,
robert.richter@amd.com, linuxppc-dev@ozlabs.org,
linux-kernel@vger.kernel.org,
Stephane Eranian <eranian@google.com>,
Andi Kleen <ak@linux.intel.com>
Subject: Re: [PATCH 2/5] perf: Make EVENT_ATTR and EVENT_PTR global
Date: Wed, 2 Jan 2013 15:58:50 +0100 [thread overview]
Message-ID: <20130102145850.GE931@krava.brq.redhat.com> (raw)
In-Reply-To: <20121219072802.GA30790@us.ibm.com>
On Tue, Dec 18, 2012 at 11:28:02PM -0800, Sukadev Bhattiprolu wrote:
>
> Rename EVENT_ATTR() and EVENT_PTR() PMU_EVENT_ATTR() and PMU_EVENT_PTR().
> Make them global so they are available to all architectures.
>
> Further to allow architectures flexibility, have PMU_EVENT_PTR() pass in the
> variable name as a parameter.
>
hi,
the change looks ok apart from some nits below.
There' another version of the x86 event attributes change
I mentioned earlier:
http://marc.info/?l=linux-kernel&m=135601815224373&w=2
I'm not sure which one will make it in first, but you
guys need to sync ;-) CC-ing Andi and Stephane.
thanks,
jirka
> Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
> ---
> arch/x86/kernel/cpu/perf_event.c | 17 +++++------------
> include/linux/perf_event.h | 13 +++++++++++++
> 2 files changed, 18 insertions(+), 12 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
> index 4428fd1..24bc505 100644
> --- a/arch/x86/kernel/cpu/perf_event.c
> +++ b/arch/x86/kernel/cpu/perf_event.c
> @@ -1316,11 +1316,6 @@ static struct attribute_group x86_pmu_format_group = {
> .attrs = NULL,
> };
>
> -struct perf_pmu_events_attr {
> - struct device_attribute attr;
> - u64 id;
> -};
> -
> /*
> * Remove all undefined events (x86_pmu.event_map(id) == 0)
> * out of events_attr attributes.
> @@ -1351,14 +1346,12 @@ static ssize_t events_sysfs_show(struct device *dev, struct device_attribute *at
> return x86_pmu.events_sysfs_show(page, config);
> }
>
> -#define EVENT_VAR(_id) event_attr_##_id
> -#define EVENT_PTR(_id) &event_attr_##_id.attr.attr
> +#define EVENT_VAR(_id) event_attr_##_id
> +#define EVENT_ID(_id) PERF_COUNT_HW_##_id
> +#define EVENT_PTR(_id) PMU_EVENT_PTR(EVENT_VAR(_id))
>
> -#define EVENT_ATTR(_name, _id) \
> -static struct perf_pmu_events_attr EVENT_VAR(_id) = { \
> - .attr = __ATTR(_name, 0444, events_sysfs_show, NULL), \
> - .id = PERF_COUNT_HW_##_id, \
> -};
> +#define EVENT_ATTR(_name, _id) \
> + PMU_EVENT_ATTR(_name, EVENT_VAR(_id), EVENT_ID(_id), events_sysfs_show)
probably no need to define EVENT_ID macro if it's used on just one place
>
> EVENT_ATTR(cpu-cycles, CPU_CYCLES );
> EVENT_ATTR(instructions, INSTRUCTIONS );
> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
> index 6bfb2fa..31692cb 100644
> --- a/include/linux/perf_event.h
> +++ b/include/linux/perf_event.h
> @@ -817,6 +817,19 @@ do { \
> } while (0)
>
>
> +struct perf_pmu_events_attr {
> + struct device_attribute attr;
> + u64 id;
> +};
> +
> +#define PMU_EVENT_PTR(_var) &_var.attr.attr
this one seems superfluous as well, could be replaced by '&'
next prev parent reply other threads:[~2013-01-02 14:59 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-19 7:26 [PATCH 1/5] perf/Power7: Use macros to identify perf events Sukadev Bhattiprolu
2012-12-19 7:28 ` [PATCH 2/5] perf: Make EVENT_ATTR and EVENT_PTR global Sukadev Bhattiprolu
2013-01-02 14:58 ` Jiri Olsa [this message]
2013-01-05 1:47 ` Sukadev Bhattiprolu
2012-12-19 7:28 ` [PATCH 3/5] perf/POWER7: Make generic event translations available in sysfs Sukadev Bhattiprolu
2012-12-20 5:36 ` Greg KH
2012-12-20 7:03 ` Sukadev Bhattiprolu
2012-12-19 7:29 ` [PATCH 4/5] perf/POWER7: Make some POWER7 events " Sukadev Bhattiprolu
2012-12-19 7:30 ` [PATCH 5/5] perf: Create a sysfs entry for Power event format Sukadev Bhattiprolu
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=20130102145850.GE931@krava.brq.redhat.com \
--to=jolsa@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@ghostprotocols.net \
--cc=ak@linux.intel.com \
--cc=anton@au1.ibm.com \
--cc=eranian@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=mingo@redhat.com \
--cc=paulus@samba.org \
--cc=robert.richter@amd.com \
--cc=sukadev@linux.vnet.ibm.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
all inboxes | Powered by JetHome®