Re: [RFC/PATCHSET 00/15] perf report: Add support to accumulate histperiods

From: Frederic Weisbecker
Date: Fri Sep 28 2012 - 11:27:51 EST


On Fri, Sep 28, 2012 at 02:49:55PM +0900, Namhyung Kim wrote:
> Hi Frederic,
>
> On Fri, 28 Sep 2012 01:01:48 +0200, Frederic Weisbecker wrote:
> > When Arun was working on this, I asked him to explore if it could make sense to reuse
> > the "-b, --branch-stack" perf report option. Because after all, this feature is doing
> > about the same than "-b" except it's using callchains instead of full branch tracing.
> > But callchains are branches. Just a limited subset of all branches taken on excecution.
> > So you can probably reuse some interface and even ground code there.
> >
> > What do you think?
>
> Umm.. first of all, I'm not familiar with the branch stack thing. It's
> intel-specific, right?
>
> Also I don't understand what exactly you want here. What kind of
> interface did you say? Can you elaborate it bit more?

Look at commit b50311dc2ac1c04ad19163c2359910b25e16caf6
"perf report: Add support for taken branch sampling". It's doing almost
the same than you do, just using PERF_SAMPLE_BRANCH_STACK instead of
callchains.

> And AFAIK branch stack can collect much more branch information than
> just callstacks.

That's not a problem. Callchains are just a high-level filtered source of
branch samples. You don't need full branches to use "-b". Just use the flavour
of branch samples you want to make the sense you want on your branch sampling.

> Can we differentiate which is which easily?

Sure. If you have both sources in your perf.data (PERF_SAMPLE_BRANCH_STACK and
callchains), ask the user which one he wants. Otherwise defaults to what's there.

> Is there
> any limitation on using it? What if callstacks are not sync'ed with
> branch stacks - is it possible though?

It' better to make both sources mutually exclusive. Otherwise it's going
to be over-complicated.

>
> But I think it'd be good if the branch stack can be changed to call
> stack in general. Did you mean this?

That's a different. We might be able to post-process branch tracing and
build a callchain on top of it (following calls and ret). May be we will
one day. But they are different issues altogether.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/