From: Robert Richter <robert.richter@amd.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>,
Ingo Molnar <mingo@kernel.org>, <linux-kernel@vger.kernel.org>,
<andi@firstfloor.org>, <mingo@elte.hu>, <ming.m.lin@intel.com>,
Andreas Herrmann <andreas.herrmann3@amd.com>,
Borislav Petkov <borislav.petkov@amd.com>,
Dimitri Sivanich <sivanich@sgi.com>,
Dmitry Adamushko <dmitry.adamushko@gmail.com>
Subject: Re: [PATCH] perf/x86: check ucode before disabling PEBS on SandyBridge
Date: Tue, 12 Jun 2012 19:23:34 +0200 [thread overview]
Message-ID: <20120612172334.GQ1478@erda.amd.com> (raw)
In-Reply-To: <1339521203.31548.92.camel@twins>
On 12.06.12 19:13:23, Peter Zijlstra wrote:
> On Tue, 2012-06-12 at 19:09 +0200, Stephane Eranian wrote:
> > > Instead of registering a microcode notifier, why not checking the
> > > availability of pebs dynamically with each syscall in
> > > intel_pmu_hw_config()? It looks like intel_snb_verify_ucode() is not
> > > that much expensive. We can perform the check only if the event
> > could
> > > be for pebs and if pebs is broken. The check could be repeated when
> > > setting up a new event after ucode could potentially has been
> > updated
> > > (e.g. after bringing a cpu online or so).
>
> Because you then end up with a for_each_online_cpu() loop in there,
> that's not pretty and quite horrible on large systems when you need to
> create nr_cpus events.
But usually the check fails on the current cpu, no need to touch other
cpus in this case. for_each_online_cpu() would run only for the case
that there just was a ucode update and pebs is going to be enabled.
And for this rare case we could use locking.
> Furthermore, ucode update is the rare thing, creating events happens
> much more frequently.
>
> > That's what I had in my original version.
>
> Right, but you really need to check all cpus, not just the one you
> happen to run on or the boot cpu.
Once pebs is enabled no further checks are needed anymore, I think.
-Robert
--
Advanced Micro Devices, Inc.
Operating System Research Center
next prev parent reply other threads:[~2012-06-12 17:23 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-07 7:15 [PATCH] perf/x86: check ucode before disabling PEBS on SandyBridge Stephane Eranian
2012-06-07 10:18 ` Peter Zijlstra
2012-06-07 10:35 ` Stephane Eranian
2012-06-07 10:45 ` Peter Zijlstra
2012-06-07 10:48 ` Stephane Eranian
2012-06-07 11:15 ` Peter Zijlstra
2012-06-08 9:35 ` Ingo Molnar
2012-06-08 10:00 ` Peter Zijlstra
2012-06-08 10:03 ` Stephane Eranian
2012-06-08 13:26 ` Peter Zijlstra
2012-06-08 13:51 ` Borislav Petkov
2012-06-08 13:54 ` Peter Zijlstra
2012-06-08 14:15 ` Borislav Petkov
2012-06-08 14:20 ` Peter Zijlstra
2012-06-08 14:36 ` Borislav Petkov
2012-06-08 14:45 ` Peter Zijlstra
2012-06-08 15:09 ` Borislav Petkov
2012-06-08 13:56 ` Peter Zijlstra
2012-06-08 14:03 ` Borislav Petkov
2012-06-08 13:59 ` Peter Zijlstra
2012-06-08 14:03 ` Stephane Eranian
2012-06-08 14:17 ` Borislav Petkov
2012-06-08 16:02 ` H. Peter Anvin
2012-06-08 21:02 ` Henrique de Moraes Holschuh
2012-06-08 21:16 ` Borislav Petkov
2012-06-08 14:07 ` Stephane Eranian
2012-06-08 14:13 ` Peter Zijlstra
2012-06-08 14:19 ` Borislav Petkov
2012-06-08 14:23 ` Peter Zijlstra
2012-06-08 14:26 ` Stephane Eranian
2012-06-08 14:25 ` Peter Zijlstra
2012-06-08 14:26 ` Stephane Eranian
2012-06-12 8:14 ` Stephane Eranian
2012-06-08 16:28 ` Stephane Eranian
2012-06-08 18:49 ` Peter Zijlstra
2012-06-08 16:50 ` Andi Kleen
2012-06-08 18:05 ` Borislav Petkov
2012-06-08 18:52 ` Peter Zijlstra
2012-06-08 20:38 ` Borislav Petkov
2012-06-12 17:07 ` Robert Richter
2012-06-12 17:09 ` Stephane Eranian
2012-06-12 17:13 ` Peter Zijlstra
2012-06-12 17:17 ` Borislav Petkov
2012-06-12 17:18 ` Peter Zijlstra
2012-06-12 17:23 ` Borislav Petkov
2012-06-12 17:26 ` Peter Zijlstra
2012-06-12 17:35 ` Borislav Petkov
2012-06-12 17:40 ` Peter Zijlstra
2012-06-12 18:04 ` Andi Kleen
2012-06-12 20:10 ` Borislav Petkov
2012-06-13 1:04 ` Henrique de Moraes Holschuh
2012-06-13 6:51 ` Borislav Petkov
2012-06-13 12:36 ` Henrique de Moraes Holschuh
2012-06-13 16:11 ` Borislav Petkov
2012-06-13 21:41 ` Henrique de Moraes Holschuh
2012-06-15 12:37 ` Borislav Petkov
2012-06-15 12:42 ` Peter Zijlstra
2012-06-15 12:52 ` Borislav Petkov
2012-06-15 16:52 ` [PATCH] x86, microcode: Make reload interface per system Borislav Petkov
2012-06-15 17:16 ` Peter Zijlstra
2012-06-15 17:49 ` Borislav Petkov
2012-06-19 2:46 ` Henrique de Moraes Holschuh
2012-06-19 3:31 ` H. Peter Anvin
2012-06-19 5:11 ` Borislav Petkov
2012-06-19 8:17 ` Peter Zijlstra
2012-06-19 10:22 ` Borislav Petkov
2012-06-19 10:26 ` Peter Zijlstra
2012-06-19 15:06 ` Borislav Petkov
2012-06-19 15:57 ` H. Peter Anvin
2012-06-19 18:22 ` Henrique de Moraes Holschuh
2012-06-19 20:22 ` H. Peter Anvin
2012-06-20 23:46 ` Henrique de Moraes Holschuh
2012-06-20 23:49 ` H. Peter Anvin
2012-06-21 0:06 ` Henrique de Moraes Holschuh
2012-06-21 0:18 ` H. Peter Anvin
2012-06-21 2:33 ` Henrique de Moraes Holschuh
2012-06-19 5:03 ` Borislav Petkov
2012-06-19 18:57 ` Henrique de Moraes Holschuh
2012-06-19 22:19 ` Borislav Petkov
2012-06-19 2:42 ` [PATCH] perf/x86: check ucode before disabling PEBS on SandyBridge Henrique de Moraes Holschuh
2012-06-12 17:23 ` Robert Richter [this message]
2012-06-12 17:15 ` Borislav Petkov
2012-06-07 13:28 ` Andi Kleen
2012-06-07 13:27 ` Andi Kleen
2012-06-12 18:35 ` H. Peter Anvin
2012-06-12 19:07 ` Borislav Petkov
2012-06-12 19:33 ` Peter Zijlstra
2012-06-12 19:35 ` Andi Kleen
2012-06-12 19:49 ` Borislav Petkov
2012-06-12 20:28 ` H. Peter Anvin
2012-06-12 20:37 ` Borislav Petkov
2012-06-12 20:42 ` H. Peter Anvin
2012-06-12 20:56 ` Borislav Petkov
2012-06-12 20:58 ` H. Peter Anvin
2012-06-12 21:04 ` Borislav Petkov
2012-06-13 8:38 ` Peter Zijlstra
2012-06-13 14:00 ` H. Peter Anvin
2012-06-13 15:37 ` Peter Zijlstra
2012-06-13 15:46 ` H. Peter Anvin
2012-06-13 12:39 ` Peter Zijlstra
2012-06-13 13:22 ` H. Peter Anvin
2012-06-13 14:01 ` Henrique de Moraes Holschuh
2012-06-13 8:32 ` Peter Zijlstra
2012-06-13 13:59 ` H. Peter Anvin
2012-06-13 15:32 ` Peter Zijlstra
2012-06-13 15:38 ` H. Peter Anvin
2012-06-12 20:27 ` H. Peter Anvin
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=20120612172334.GQ1478@erda.amd.com \
--to=robert.richter@amd.com \
--cc=andi@firstfloor.org \
--cc=andreas.herrmann3@amd.com \
--cc=borislav.petkov@amd.com \
--cc=dmitry.adamushko@gmail.com \
--cc=eranian@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ming.m.lin@intel.com \
--cc=mingo@elte.hu \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=sivanich@sgi.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.