From: Andi Kleen <ak@linux.intel.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Ingo Molnar <mingo@redhat.com>,
linux-kernel@vger.kernel.org, vince@deater.net,
eranian@google.com, Arnaldo Carvalho de Melo <acme@infradead.org>,
tglx@linutronix.de
Subject: Re: [RFC PATCH 0/6] perf: Add AUX data sampling
Date: Fri, 23 Sep 2016 15:34:03 -0700 [thread overview]
Message-ID: <20160923223403.GW3078@tassilo.jf.intel.com> (raw)
In-Reply-To: <20160923203527.GR5008@twins.programming.kicks-ass.net>
On Fri, Sep 23, 2016 at 10:35:27PM +0200, Peter Zijlstra wrote:
> On Fri, Sep 23, 2016 at 10:19:43AM -0700, Andi Kleen wrote:
> > On Fri, Sep 23, 2016 at 01:49:17PM +0200, Peter Zijlstra wrote:
> > > On Fri, Sep 23, 2016 at 02:27:20PM +0300, Alexander Shishkin wrote:
> > > > Hi Peter,
> > > >
> > > > This is an RFC, I'm not sending the tooling bits in this series,
> > > > although they can be found here [1].
> > > >
> > > > This series introduces AUX data sampling for perf events, which in
> > > > case of our instruction/branch tracing PMUs like Intel PT, BTS, CS
> > > > ETM means execution flow history leading up to a perf event's
> > > > overflow.
> > >
> > > This fails to explain _WHY_ this is a good thing to have. What kind of
> > > analysis does this enable, and is that fully implemented in [1] (I
> > > didn't look).
> >
> > Think of it as a super LBR. (Near) all things LBR can do, PT can do
> > with much more branches for each sample.
>
> Clarify the 'near'? Should we then not expose it as a BRANCH_STACK?
- Exposing it as branch stack would need a PT decoder in kernel space.
A PT decoder is quite complicated and needs a lot of infrastructure.
- Putting a PT decoder in kernel space is bad because the decoder is
much slower than the execution and much better runs offline than online.
It would cause a lot more data loss.
- LBR has some features which are not in PT (but also other way round),
like mispredict indication, call stack mode or individual basic block level
timing. It also has practically no runtime overhead.
- Also BTW the pt decoder in user space already supporting exposing
PT as a virtual LBR. It is just done all without kernel help
after decoding.
> > Also long term execution recording of PT normally doesn't work well because the
> > sustained bandwidth is too high for perf and the disk to keep up
> >
> > Currently the main solution we have for that is the snapshot mode, but it
> > requires explicit instrumentation for someone to trigger snapshots.
> >
> > Sampling PT is an alternative that works for many use cases, and does
> > not rely on instrumentation.
>
> List a few use-cases on either side of that divide ?
- Snapshot mode is good for targeted performance debugging. You're looking
for something specific and can instrument for it.
- Sample mode is good for generic data collection. You don't know yet
what you're looking for, but want to see hot paths in your application.
- Sample mode also works for automated data collection, like using
it for compiler profile feedback.
-Andi
prev parent reply other threads:[~2016-09-23 22:34 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-23 11:27 Alexander Shishkin
2016-09-23 11:27 ` [RFC PATCH 1/6] perf: Move mlock accounting to ring buffer allocation Alexander Shishkin
2016-09-23 12:14 ` Peter Zijlstra
2016-09-23 14:27 ` Alexander Shishkin
2016-09-23 15:27 ` Peter Zijlstra
2016-09-23 15:58 ` Alexander Shishkin
2016-09-23 17:26 ` Andi Kleen
2016-09-23 20:28 ` Peter Zijlstra
2016-09-26 8:27 ` Alexander Shishkin
2016-09-26 9:03 ` Peter Zijlstra
2016-09-26 12:39 ` Alexander Shishkin
2016-09-26 16:13 ` Alexander Shishkin
2016-09-23 11:27 ` [RFC PATCH 2/6] perf: Add api to (de-)allocate AUX buffers for kernel counters Alexander Shishkin
2016-09-23 11:27 ` [RFC PATCH 3/6] perf: Add a helper for looking up pmus by type Alexander Shishkin
2016-09-23 11:27 ` [RFC PATCH 4/6] perf: Add infrastructure for using AUX data in perf samples Alexander Shishkin
2016-09-23 11:27 ` [RFC PATCH 5/6] perf: Disable PMU around address filter adjustment Alexander Shishkin
2016-09-23 11:27 ` [RFC PATCH 6/6] perf: Disable IRQs in address filter sync path Alexander Shishkin
2016-09-26 16:18 ` Alexander Shishkin
2016-10-04 16:49 ` Mathieu Poirier
2016-09-23 11:49 ` [RFC PATCH 0/6] perf: Add AUX data sampling Peter Zijlstra
2016-09-23 17:19 ` Andi Kleen
2016-09-23 20:35 ` Peter Zijlstra
2016-09-23 22:34 ` Andi Kleen [this message]
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=20160923223403.GW3078@tassilo.jf.intel.com \
--to=ak@linux.intel.com \
--cc=acme@infradead.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=eranian@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=vince@deater.net \
/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
Powered by JetHome