RE: [PATCH V5 11/16] perf, core: Pass perf_sample_data to perf_callchain()

From: Liang, Kan
Date: Tue Oct 07 2014 - 11:50:54 EST




> > > So I don't like this. Why not use the regular
> > > PERF_SAMPLE_BRANCH_STACK output to generate the stuff from? We
> > > already have two different means, with different transport, for callchains
> anyhow, so a third really won't matter.
> >
> > I'm not sure what you mean by using the regular
> > PERF_SAMPLE_BRANCH_STACK output to generate the stuff from. But we
> > don't need to modify various architectures' perf_callchain_user, if
> > that's your concern. An alternative way is to generate the callchain
> > output in a higher level, like perf_callchain. If there is no frame
> > pointer, the entry->nr will be set to MAX+1. So the perf_callchain
> > knows that we need to try LBR callstack if possible. In
> > perf_callchain, it resets entry->nr to old value, and call
> > perf_callchain_lbr_callstack to check and fill the callchain struct if
> > possible. The patch is as below.
>
> Please instruct your MUA to wrap at 78 chars.
>
> What I meant was: why can't we use the regular
> PERF_SAMPLE_BRANCH_STACK output to generate user traces from?
>
> PERF_SAMPLE_BRANCH_STACK is the 'normal' LBR output format.

The data is originally from br_stack which is LBR format.
What the patch did is to convert it to CALLCHAIN output format in kernel.
So you'd like to let the kernel pass the LBR output format data to user space
perf tool, and let perf tool to generate the callchain information?


Kan
--
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/