Re: Does perf inject preserve call chain data?

From: Tim Chen
Date: Fri Jun 08 2012 - 12:44:16 EST


On Fri, 2012-06-08 at 11:38 -0300, Arnaldo Carvalho de Melo wrote:
> Em Tue, May 22, 2012 at 03:58:40PM -0600, David Ahern escreveu:
> > On 5/22/12 12:49 PM, Tim Chen wrote:
> > >Arnaldo,
> > >
> > >Wonder if perf inject munged the call chain data from perf record?
> > >
> > >When I do
> > >perf record -a -g -o - sleep 5 |perf inject -v -b | perf report -g -i -
> > >I get a complain from perf report
> > >
> > >Warning:
> > >Selected -g but no callchain data. Did you call 'perf record' without -g?
> > >
> >
> > I believe the root cause is that the event list is not written to
> > the pipe. Using Arnaldo's git repo as of today (has fixes from
> > Stephane) this hack shows the info is there and can be processed.
>
> How things stand here? Tim, did this fix things for you? If so, David,
> please resend with a proper subject line and a Tested-by: Tim, ok?
>
> Thanks,
>
> - Arnaldo
>

It didn't fix things for me when I was testing on a westmere-ex machine.
I got

# ./perf record -a -g -o - sleep 5 |perf inject -v -b | perf report -g -i -
incompatible file format
incompatible file formatincompatible file formatselected -g but no callchain data. Did you call perf record without -g?

Testing was done on 3.5.0-rc1.

Tim

> >
> > diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
> > index d58e414..60f3f17 100644
> > --- a/tools/perf/builtin-report.c
> > +++ b/tools/perf/builtin-report.c
> > @@ -256,7 +257,7 @@ static int perf_report__setup_sample_type(struct
> > perf_report *rep)
> > "'perf record' without -g?\n");
> > return -EINVAL;
> > }
> > - if (symbol_conf.use_callchain) {
> > + if (!self->fd_pipe && symbol_conf.use_callchain) {
> > ui__warning("Selected -g but no callchain data. Did "
> > "you call 'perf record' without -g?\n");
> > return -1;
> >
> > A proper solution is needed.
> >
> > David


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