Re: [RFC] perf script: callchain handling is not useful

From: Arnaldo Carvalho de Melo
Date: Wed Aug 29 2018 - 09:54:52 EST


Em Tue, Aug 28, 2018 at 07:41:31PM -0700, Stephane Eranian escreveu:
> Hi,
>
> I am doing the following simple collection with callchain and load profiling:
>
> $ perf record -g -d -e cpu/event=0xd0,umask=0x81/pp my_test_program
>
> But when I type:
> $ perf script -F ip,addr
> ffff9d4821346878
> ffffffff9d58df25
> ffffffff9d58e054
> ffffffff9d5965bb
> ffffffff9d640650
> ffffffff9d697d06
> ffffffff9d63ec60
> ffffffff9d640322
> ffffffff9d64070c
> ffffffff9d455a60
> 7030c7
>
> ffff9d4638ba84a0
> ffffffff9d5df447
> ffffffff9d5eaf4a
> ffffffff9d63e165
> ffffffff9d63e439
> ffffffff9d697d98
> ffffffff9d63ec60
> ffffffff9d640322
> ffffffff9d64070c
> ffffffff9d455a60
> 7030c7
> I also see the callchain and it is not clear which is the IP. Further
> more parsing becomes more difficult because of multiple lines per
> sample. I understand that multiline is likely because of
> symbolization. But if I don't want symbolization, it should be
> possible to print all in one line.

Humm, to have this not break possibly existing scripts, perhaps we can
have something like:

$ perf script -F ip,-callchain,addr

?

And if asked explicitely for the callchain, then it gets added in the
same line?

- Arnaldo


> The current output is not very useful. You expect perf script to give
> you one line per sample and only what you want. Callchain != IP.
>
> I think the following should happen:
> - do not print callchain when asked for the IP. Create a callchain filter.
> - print callchain on the same line, much like what is done for brstack
>
> It is not clear to me why callchain and ip were lumped together.
> Any opinion on my proposal?
> Thanks.