From: Peter Zijlstra <peterz@infradead.org>
To: Stephane Eranian <eranian@google.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
"mingo@elte.hu" <mingo@elte.hu>,
"ak@linux.intel.com" <ak@linux.intel.com>,
Jiri Olsa <jolsa@redhat.com>,
"Yan, Zheng" <zheng.z.yan@intel.com>,
Maria Dimakopoulou <maria.n.dimakopoulou@gmail.com>
Subject: Re: [PATCH 4/9] perf/x86: add cross-HT counter exclusion infrastructure
Date: Tue, 10 Jun 2014 14:26:49 +0200 [thread overview]
Message-ID: <20140610122649.GH6758@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <CABPqkBQG=SMvtdvpBMnZx4Etf5rRoy3=K81RLNRcPEgBh7Yqdg@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1821 bytes --]
On Tue, Jun 10, 2014 at 01:53:45PM +0200, Stephane Eranian wrote:
> On Thu, Jun 5, 2014 at 10:29 AM, Peter Zijlstra <peterz@infradead.org> wrote:
> > On Wed, Jun 04, 2014 at 11:34:13PM +0200, Stephane Eranian wrote:
> >> @@ -2020,12 +2050,29 @@ static void intel_pmu_cpu_starting(int cpu)
> >>
> >> if (x86_pmu.lbr_sel_map)
> >> cpuc->lbr_sel = &cpuc->shared_regs->regs[EXTRA_REG_LBR];
> >> +
> >> + if (x86_pmu.flags & PMU_FL_EXCL_CNTRS) {
> >> + for_each_cpu(i, topology_thread_cpumask(cpu)) {
> >> + struct intel_excl_cntrs *c;
> >> +
> >> + c = per_cpu(cpu_hw_events, i).excl_cntrs;
> >> + if (c && c->core_id == core_id) {
> >> + cpuc->kfree_on_online[1] = cpuc->excl_cntrs;
> >> + cpuc->excl_cntrs = c;
> >> + cpuc->excl_thread_id = 1;
> >> + break;
> >> + }
> >> + }
> >> + cpuc->excl_cntrs->core_id = core_id;
> >> + cpuc->excl_cntrs->refcnt++;
> >> + }
> >> }
> >
> > This hard assumes theres only ever 2 threads, which is true and I
> > suppose more in arch/x86 will come apart the moment Intel makes a chip
> > with more, still, do we have topology_thread_id() or so to cure this?
>
> I assume your comment is relative to kfree_on_online[].
> This code is specific to the HT bug, so yes, it assumes 2 threads and that
> only one entry of the two excl_cntrs structs needs to be freed.
> Doing otherwise, would require a list and will never be used to its full
> potential.
That and ->excl_thread_id = 1, I was thinking that if we'd somehow have
4 threads, some of them need to have = [23] in there.
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2014-06-10 12:26 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-04 21:34 [PATCH 0/9] perf/x86: implement HT counter corruption workaround Stephane Eranian
2014-06-04 21:34 ` [PATCH 1/9] perf,x86: rename er_flags to flags Stephane Eranian
2014-06-04 21:34 ` [PATCH 2/9] pref/x86: vectorize cpuc->kfree_on_online Stephane Eranian
2014-06-04 21:34 ` [PATCH 3/9] perf/x86: add 3 new scheduling callbacks Stephane Eranian
2014-06-04 21:34 ` [PATCH 4/9] perf/x86: add cross-HT counter exclusion infrastructure Stephane Eranian
2014-06-05 7:47 ` Peter Zijlstra
2014-06-05 10:51 ` Stephane Eranian
2014-06-05 8:04 ` Peter Zijlstra
2014-06-05 13:36 ` Maria Dimakopoulou
2014-06-05 8:29 ` Peter Zijlstra
2014-06-05 21:33 ` Andi Kleen
2014-06-05 21:38 ` Stephane Eranian
2014-06-10 11:53 ` Stephane Eranian
2014-06-10 12:26 ` Peter Zijlstra [this message]
2014-06-04 21:34 ` [PATCH 5/9] perf/x86: implement cross-HT corruption bug workaround Stephane Eranian
2014-06-05 13:38 ` Peter Zijlstra
2014-06-05 13:42 ` Peter Zijlstra
2014-06-05 13:48 ` Peter Zijlstra
2014-06-05 14:01 ` Maria Dimakopoulou
2014-06-05 14:04 ` Borislav Petkov
2014-06-05 14:11 ` Peter Zijlstra
2014-06-05 14:14 ` Peter Zijlstra
2014-06-05 14:24 ` Maria Dimakopoulou
2014-06-05 14:04 ` Peter Zijlstra
2014-06-05 14:15 ` Stephane Eranian
2014-06-05 14:21 ` Peter Zijlstra
2014-06-05 14:26 ` Stephane Eranian
2014-06-05 14:31 ` Peter Zijlstra
2014-06-05 15:31 ` Stephane Eranian
2014-06-04 21:34 ` [PATCH 6/9] perf/x86: enforce HT bug workaround for SNB/IVB/HSW Stephane Eranian
2014-06-04 21:34 ` [PATCH 7/9] perf/x86: enforce HT bug workaround with PEBS " Stephane Eranian
2014-06-04 21:34 ` [PATCH 8/9] perf/x86: fix intel_get_event_constraints() for dynamic constraints Stephane Eranian
2014-06-04 21:34 ` [PATCH 9/9] perf/x86: add syfs entry to disable HT bug workaround Stephane Eranian
2014-06-05 8:32 ` Matt Fleming
2014-06-05 9:29 ` Stephane Eranian
2014-06-05 10:01 ` Matt Fleming
2014-06-05 10:19 ` Stephane Eranian
2014-06-05 11:16 ` Matt Fleming
2014-06-05 12:02 ` Stephane Eranian
2014-06-05 13:27 ` Borislav Petkov
2014-06-05 13:42 ` Stephane Eranian
2014-06-05 14:03 ` Borislav Petkov
2014-06-05 14:45 ` Maria Dimakopoulou
2014-06-05 15:17 ` Borislav Petkov
2014-06-05 16:39 ` Maria Dimakopoulou
2014-06-05 16:47 ` Stephane Eranian
2014-06-05 16:52 ` Borislav Petkov
2014-06-05 18:00 ` Maria Dimakopoulou
2014-06-05 23:29 ` Andi Kleen
2014-06-06 8:28 ` Matt Fleming
2014-06-05 12:50 ` Peter Zijlstra
2014-06-05 12:55 ` Stephane Eranian
2014-06-05 12:59 ` Peter Zijlstra
2014-06-05 13:16 ` Stephane Eranian
2014-06-05 13:26 ` Peter Zijlstra
2014-06-05 13:19 ` Peter Zijlstra
2014-06-05 13:26 ` Stephane Eranian
2014-06-04 22:28 ` [PATCH 0/9] perf/x86: implement HT counter corruption workaround Andi Kleen
2014-06-05 12:45 ` Stephane Eranian
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=20140610122649.GH6758@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=ak@linux.intel.com \
--cc=eranian@google.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maria.n.dimakopoulou@gmail.com \
--cc=mingo@elte.hu \
--cc=zheng.z.yan@intel.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 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.