From: Andrew Murray <andrew.murray@arm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
Will Deacon <will.deacon@arm.com>,
Paul Mackerras <paulus@samba.org>,
Shawn Guo <shawnguo@kernel.org>,
x86@kernel.org, Russell King <linux@armlinux.org.uk>,
Ingo Molnar <mingo@redhat.com>, Matt Turner <mattst88@gmail.com>,
suzuki.poulose@arm.com, Sascha Hauer <s.hauer@pengutronix.de>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
Thomas Gleixner <tglx@linutronix.de>,
linux-arm-kernel@lists.infradead.org,
Richard Henderson <rth@twiddle.net>,
robin.murphy@arm.com, linux-kernel@vger.kernel.org,
linux-alpha@vger.kernel.org, Borislav Petkov <bp@alien8.de>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v4 05/13] arm: perf: conditionally use PERF_PMU_CAP_NO_EXCLUDE
Date: Tue, 8 Jan 2019 13:07:41 +0000 [thread overview]
Message-ID: <20190108130740.GC56789@e119886-lin.cambridge.arm.com> (raw)
In-Reply-To: <20190108102802.GC6808@hirez.programming.kicks-ass.net>
On Tue, Jan 08, 2019 at 11:28:02AM +0100, Peter Zijlstra wrote:
> On Mon, Jan 07, 2019 at 04:27:22PM +0000, Andrew Murray wrote:
> > @@ -393,9 +386,8 @@ __hw_perf_event_init(struct perf_event *event)
> > /*
> > * Check whether we need to exclude the counter from certain modes.
> > */
> > + if (armpmu->set_event_filter &&
> > + armpmu->set_event_filter(hwc, &event->attr)) {
> > pr_debug("ARM performance counters do not support "
> > "mode exclusion\n");
> > return -EOPNOTSUPP;
>
> This then requires all set_event_filter() implementations to check all
> the various exclude options;
Yes but this isn't a new requirement, this hunk uses the absence of
set_event_filter to blanket indicate that no exclusion flags are supported.
> also, set_event_filter() failing then
> returns with -EOPNOTSUPP instead of the -EINVAL the CAP_NO_EXCLUDE
> generates, which is again inconsitent.
Yes, it's not ideal - but a step in the right direction. I wanted to limit
user visible changes as much as possible, where I've identified them I've
noted it in the commit log.
>
> If I look at (the very first git-grep found me)
> armv7pmu_set_event_filter(), then I find it returning -EPERM (again
> inconsistent but irrelevant because the actual value is not preserved)
> for exclude_idle.
>
> But it doesn't seem to check exclude_host at all for example.
Yes I found lots of examples like this across the tree whilst doing this
work. However I decided to initially start with simply removing duplicated
code as a result of adding this flag and attempting to preserve existing
functionality. I thought that if I add missing checks then the patchset
will get much bigger and be harder to merge. I would like to do this though
as another non-cross-arch series.
Can we limit this patch series to the minimal changes required to fully
use PERF_PMU_CAP_NO_EXCLUDE and then attempt to fix these existing problems
in subsequent patch sets?
Thanks,
Andrew Murray
>
> > @@ -867,6 +859,9 @@ int armpmu_register(struct arm_pmu *pmu)
> > if (ret)
> > return ret;
> >
> > + if (!pmu->set_event_filter)
> > + pmu->pmu.capabilities |= PERF_PMU_CAP_NO_EXCLUDE;
> > +
> > ret = perf_pmu_register(&pmu->pmu, pmu->name, -1);
> > if (ret)
> > goto out_destroy;
> > --
> > 2.7.4
> >
next prev parent reply other threads:[~2019-01-08 13:22 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-07 16:27 [PATCH v4 00/13] perf/core: Generalise event exclusion checking Andrew Murray
2019-01-07 16:27 ` [PATCH v4 01/13] perf/doc: update design.txt for exclude_{host|guest} flags Andrew Murray
2019-01-07 16:27 ` [PATCH v4 02/13] perf/core: add function to test for event exclusion flags Andrew Murray
2019-01-07 16:27 ` [PATCH v4 03/13] perf/core: add PERF_PMU_CAP_NO_EXCLUDE for exclusion incapable PMUs Andrew Murray
2019-01-07 16:27 ` [PATCH v4 04/13] alpha: perf/core: use PERF_PMU_CAP_NO_EXCLUDE Andrew Murray
2019-01-07 16:27 ` [PATCH v4 05/13] arm: perf: conditionally " Andrew Murray
2019-01-08 10:28 ` Peter Zijlstra
2019-01-08 13:07 ` Andrew Murray [this message]
2019-01-08 13:10 ` Peter Zijlstra
2019-01-08 13:13 ` Andrew Murray
2019-01-08 14:43 ` Peter Zijlstra
2019-01-07 16:27 ` [PATCH v4 06/13] arm: perf/core: use PERF_PMU_CAP_NO_EXCLUDE for exclude incapable PMUs Andrew Murray
2019-01-07 16:27 ` [PATCH v4 07/13] drivers/perf: " Andrew Murray
2019-01-07 16:27 ` [PATCH v4 08/13] " Andrew Murray
2019-01-07 16:27 ` [PATCH v4 09/13] powerpc: " Andrew Murray
2019-01-07 16:27 ` [PATCH v4 10/13] x86: " Andrew Murray
2019-01-08 10:48 ` Peter Zijlstra
2019-01-08 13:12 ` Andrew Murray
2019-01-08 16:36 ` Boris Ostrovsky
2019-01-08 18:49 ` Peter Zijlstra
2019-01-10 13:15 ` Michael Ellerman
2019-01-07 16:27 ` [PATCH v4 11/13] " Andrew Murray
2019-01-08 10:49 ` Peter Zijlstra
2019-01-08 13:08 ` Andrew Murray
2019-01-07 16:27 ` [PATCH v4 12/13] perf/core: remove unused perf_flags Andrew Murray
2019-01-07 16:27 ` [PATCH v4 13/13] drivers/perf: use PERF_PMU_CAP_NO_EXCLUDE for Cavium TX2 PMU Andrew Murray
2019-01-10 11:10 ` 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=20190108130740.GC56789@e119886-lin.cambridge.arm.com \
--to=andrew.murray@arm.com \
--cc=acme@kernel.org \
--cc=bp@alien8.de \
--cc=ink@jurassic.park.msu.ru \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mark.rutland@arm.com \
--cc=mattst88@gmail.com \
--cc=mingo@redhat.com \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=robin.murphy@arm.com \
--cc=rth@twiddle.net \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=suzuki.poulose@arm.com \
--cc=tglx@linutronix.de \
--cc=will.deacon@arm.com \
--cc=x86@kernel.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).