From: Peter Zijlstra <peterz@infradead.org>
To: "Liang, Kan" <kan.liang@linux.intel.com>
Cc: acme@redhat.com, mingo@kernel.org, linux-kernel@vger.kernel.org,
jolsa@kernel.org, eranian@google.com,
alexander.shishkin@linux.intel.com, ak@linux.intel.com,
like.xu@linux.intel.com
Subject: Re: [PATCH V7 08/14] perf/x86/intel: Generic support for hardware TopDown metrics
Date: Tue, 28 Jul 2020 14:32:40 +0200 [thread overview]
Message-ID: <20200728123240.GJ10769@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <ddeae082-c38d-a961-4d90-1fbc1c9f2726@linux.intel.com>
On Fri, Jul 24, 2020 at 03:10:52PM -0400, Liang, Kan wrote:
> > > > Per the SIBLING patch this then wants to be:
> > > >
> > > > if (!is_slots_event(leader))
> > > > return -EINVAL;
> > > >
> > > > event->event_caps |= PERF_EV_CAP_SIBLING.
> > > > /*
> > > > * Only once we have a METRICs sibling to we
> > > > * need TopDown magic.
> > > > */
> > > > leader->hw.flags |= PERF_X86_EVENT_TOPDOWN;
>
> Since we only set the flag for the SLOTS event now, the V7 patch will treat
> the metric events as normal events, which trigger an error.
Damn, that was a silly oversight on my part.
> I think we don't need the PERF_X86_EVENT_TOPDOWN flag anymore.
> If it's a non-sampling slots event, apply the special function.
> If it's a metric event, do nothing.
> diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
> index 0f3d01562ded..02dfee0b6615 100644
> --- a/arch/x86/events/core.c
> +++ b/arch/x86/events/core.c
> @@ -73,10 +73,10 @@ u64 x86_perf_event_update(struct perf_event *event)
> u64 prev_raw_count, new_raw_count;
> u64 delta;
>
> - if (unlikely(!hwc->event_base))
> + if (unlikely(!hwc->event_base || is_metric_event(event)))
> return 0;
>
> - if (unlikely(is_topdown_count(event)) && x86_pmu.update_topdown_event)
> + if (unlikely(is_slots_count(event)) && x86_pmu.update_topdown_event)
> return x86_pmu.update_topdown_event(event);
>
> /*
> @@ -1280,11 +1280,10 @@ int x86_perf_event_set_period(struct perf_event
> *event)
> s64 period = hwc->sample_period;
> int ret = 0, idx = hwc->idx;
>
> - if (unlikely(!hwc->event_base))
> + if (unlikely(!hwc->event_base || is_metric_event(event)))
> return 0;
>
> - if (unlikely(is_topdown_count(event)) &&
> - x86_pmu.set_topdown_event_period)
> + if (unlikely(is_slots_count(event)) && x86_pmu.set_topdown_event_period)
> return x86_pmu.set_topdown_event_period(event);
>
> /*
This; I don't like that much, it adds even more conditions to fairly hot
code.
I was even considering adding a static_branch for
x86_pmu.intel_cap.perf_metrics.
Anyway, let me fix this.
next prev parent reply other threads:[~2020-07-28 12:32 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-23 17:11 [PATCH V7 00/14] TopDown metrics support for Icelake kan.liang
2020-07-23 17:11 ` [PATCH V7 01/14] perf/x86: Use event_base_rdpmc for the RDPMC userspace support kan.liang
2020-08-19 8:52 ` [tip: perf/core] " tip-bot2 for Kan Liang
2020-07-23 17:11 ` [PATCH V7 02/14] perf/x86/intel: Name the global status bit in NMI handler kan.liang
2020-08-19 8:52 ` [tip: perf/core] " tip-bot2 for Kan Liang
2020-07-23 17:11 ` [PATCH V7 03/14] perf/x86/intel: Introduce the fourth fixed counter kan.liang
2020-08-19 8:52 ` [tip: perf/core] " tip-bot2 for Kan Liang
2020-07-23 17:11 ` [PATCH V7 04/14] perf/x86/intel: Move BTS index to 47 kan.liang
2020-08-19 8:52 ` [tip: perf/core] " tip-bot2 for Kan Liang
2020-07-23 17:11 ` [PATCH V7 05/14] perf/x86/intel: Fix the name of perf METRICS kan.liang
2020-08-19 8:52 ` [tip: perf/core] " tip-bot2 for Kan Liang
2020-07-23 17:11 ` [PATCH V7 06/14] perf/x86/intel: Use switch in intel_pmu_disable/enable_event kan.liang
2020-08-19 8:52 ` [tip: perf/core] " tip-bot2 for Kan Liang
2020-07-23 17:11 ` [PATCH V7 07/14] perf/core: Add a new PERF_EV_CAP_COEXIST event capability kan.liang
2020-07-24 10:55 ` peterz
2020-07-24 11:46 ` peterz
2020-07-24 13:43 ` Liang, Kan
2020-07-24 13:54 ` Peter Zijlstra
2020-07-24 14:19 ` Liang, Kan
2020-07-24 14:32 ` Peter Zijlstra
2020-07-24 14:46 ` Andi Kleen
2020-07-24 14:59 ` Peter Zijlstra
2020-07-24 16:43 ` peterz
2020-07-24 17:00 ` Liang, Kan
2020-07-24 14:39 ` Andi Kleen
2020-07-24 14:51 ` Peter Zijlstra
2020-08-19 8:52 ` [tip: perf/core] perf/core: Add a new PERF_EV_CAP_SIBLING " tip-bot2 for Kan Liang
2020-07-23 17:11 ` [PATCH V7 08/14] perf/x86/intel: Generic support for hardware TopDown metrics kan.liang
2020-07-24 13:19 ` peterz
2020-07-24 15:27 ` peterz
2020-07-24 16:07 ` Liang, Kan
2020-07-24 19:10 ` Liang, Kan
2020-07-28 12:32 ` Peter Zijlstra [this message]
2020-07-28 13:09 ` Peter Zijlstra
2020-07-28 13:28 ` Liang, Kan
2020-07-28 13:44 ` peterz
2020-07-28 14:01 ` Liang, Kan
2020-08-19 8:52 ` [tip: perf/core] " tip-bot2 for Kan Liang
2020-07-23 17:11 ` [PATCH V7 09/14] perf/x86: Add a macro for RDPMC offset of fixed counters kan.liang
2020-08-19 8:52 ` [tip: perf/core] " tip-bot2 for Kan Liang
2020-07-23 17:11 ` [PATCH V7 10/14] perf/x86/intel: Support TopDown metrics on Ice Lake kan.liang
2020-08-19 8:52 ` [tip: perf/core] " tip-bot2 for Kan Liang
2020-07-23 17:11 ` [PATCH V7 11/14] perf/x86/intel: Support per-thread RDPMC TopDown metrics kan.liang
2020-08-19 8:52 ` [tip: perf/core] " tip-bot2 for Kan Liang
2020-07-23 17:11 ` [PATCH V7 12/14] perf, tools, stat: Support new per thread " kan.liang
2020-07-24 3:29 ` Andi Kleen
2020-07-23 17:11 ` [PATCH V7 13/14] perf, tools, stat: Check Topdown Metric group kan.liang
2020-07-23 17:11 ` [PATCH V7 14/14] perf, tools: Add documentation for topdown metrics kan.liang
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=20200728123240.GJ10769@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=acme@redhat.com \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=eranian@google.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=like.xu@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.