linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] perf script: callchain handling is not useful
@ 2018-08-29  2:41 Stephane Eranian
  2018-08-29 13:54 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 5+ messages in thread
From: Stephane Eranian @ 2018-08-29  2:41 UTC (permalink / raw)
  To: LKML; +Cc: Jiri Olsa, Arnaldo Carvalho de Melo, Namhyung Kim, Peter Zijlstra

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.

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.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] perf script: callchain handling is not useful
  2018-08-29  2:41 [RFC] perf script: callchain handling is not useful Stephane Eranian
@ 2018-08-29 13:54 ` Arnaldo Carvalho de Melo
  2018-08-29 15:14   ` Stephane Eranian
  0 siblings, 1 reply; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-08-29 13:54 UTC (permalink / raw)
  To: Stephane Eranian; +Cc: LKML, Jiri Olsa, Namhyung Kim, Peter Zijlstra

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.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] perf script: callchain handling is not useful
  2018-08-29 13:54 ` Arnaldo Carvalho de Melo
@ 2018-08-29 15:14   ` Stephane Eranian
  2018-08-30  0:33     ` Namhyung Kim
  0 siblings, 1 reply; 5+ messages in thread
From: Stephane Eranian @ 2018-08-29 15:14 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo; +Cc: LKML, Jiri Olsa, Namhyung Kim, Peter Zijlstra

On Wed, Aug 29, 2018 at 6:54 AM Arnaldo Carvalho de Melo
<acme@kernel.org> wrote:
>
> 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?
>
Yeah, that should do it.
Thanks.

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] perf script: callchain handling is not useful
  2018-08-29 15:14   ` Stephane Eranian
@ 2018-08-30  0:33     ` Namhyung Kim
  2018-08-30  5:01       ` Stephane Eranian
  0 siblings, 1 reply; 5+ messages in thread
From: Namhyung Kim @ 2018-08-30  0:33 UTC (permalink / raw)
  To: Stephane Eranian
  Cc: Arnaldo Carvalho de Melo, LKML, Jiri Olsa, Peter Zijlstra, kernel-team

Hi,

On Wed, Aug 29, 2018 at 08:14:12AM -0700, Stephane Eranian wrote:
> On Wed, Aug 29, 2018 at 6:54 AM Arnaldo Carvalho de Melo
> <acme@kernel.org> wrote:
> >
> > 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?
> >
> Yeah, that should do it.
> Thanks.

I found this:

  $ perf script -h |& grep -A1 hide
      -G, --hide-call-graph
                            When printing symbols do not display call chain

Thanks,
Namhyung

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] perf script: callchain handling is not useful
  2018-08-30  0:33     ` Namhyung Kim
@ 2018-08-30  5:01       ` Stephane Eranian
  0 siblings, 0 replies; 5+ messages in thread
From: Stephane Eranian @ 2018-08-30  5:01 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Arnaldo Carvalho de Melo, LKML, Jiri Olsa, Peter Zijlstra, kernel-team

On Wed, Aug 29, 2018 at 5:33 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> Hi,
>
> On Wed, Aug 29, 2018 at 08:14:12AM -0700, Stephane Eranian wrote:
> > On Wed, Aug 29, 2018 at 6:54 AM Arnaldo Carvalho de Melo
> > <acme@kernel.org> wrote:
> > >
> > > 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?
> > >
> > Yeah, that should do it.
> > Thanks.
>
> I found this:
>
>   $ perf script -h |& grep -A1 hide
>       -G, --hide-call-graph
>                             When printing symbols do not display call chain
>
Yes, I had found it too.  But my problem is twofold:
   - ip should not include the callchain
   - callchain should be printed in a single line
That would make things easier to parse.

> Thanks,
> Namhyung

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-08-30  5:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-29  2:41 [RFC] perf script: callchain handling is not useful Stephane Eranian
2018-08-29 13:54 ` Arnaldo Carvalho de Melo
2018-08-29 15:14   ` Stephane Eranian
2018-08-30  0:33     ` Namhyung Kim
2018-08-30  5:01       ` Stephane Eranian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).