[PATCH v3 0/4] perf trace: Add --summary-mode option

Namhyung Kim posted 4 patches 10 months, 1 week ago
tools/perf/Documentation/perf-trace.txt |   4 +
tools/perf/builtin-trace.c              | 247 +++++++++++++++++++-----
tools/perf/util/rb_resort.h             | 146 --------------
3 files changed, 203 insertions(+), 194 deletions(-)
delete mode 100644 tools/perf/util/rb_resort.h
[PATCH v3 0/4] perf trace: Add --summary-mode option
Posted by Namhyung Kim 10 months, 1 week ago
Hello,

I've realized that perf trace shows system call summary at the end for
each thread.  But sometimes users want to see the global whole system
summary or statistics instead.

So I've added --summary-mode option like below:

    $ sudo ./perf trace -as --summary-mode=total sleep 1

     Summary of events:

     total, 21580 events

       syscall            calls  errors  total       min       avg       max       stddev
                                         (msec)    (msec)    (msec)    (msec)        (%)
       --------------- --------  ------ -------- --------- --------- ---------     ------
       epoll_wait          1305      0 14716.712     0.000    11.277   551.529      8.87%
       futex               1256     89 13331.197     0.000    10.614   733.722     15.49%
       poll                 669      0  6806.618     0.000    10.174   459.316     11.77%
       ppoll                220      0  3968.797     0.000    18.040   516.775     25.35%
       clock_nanosleep        1      0  1000.027  1000.027  1000.027  1000.027      0.00%
       epoll_pwait           21      0   592.783     0.000    28.228   522.293     88.29%
       nanosleep             16      0    60.515     0.000     3.782    10.123     33.33%
       ioctl                510      0     4.284     0.001     0.008     0.182      8.84%
       recvmsg             1434    775     3.497     0.001     0.002     0.174      6.37%
       write               1393      0     2.854     0.001     0.002     0.017      1.79%
       read                1063    100     2.236     0.000     0.002     0.083      5.11%
       ...

Also it changes internal data structure to hash table to track
statistics of syscalls.  And removes the rb_resort code.

v3 changes)
* Add Acked-by from Howard
* Update commit messages  (Ian)

v2 changes)
* Rebase to current perf-tools-next
* Fix some style issues  (Howard)
* Rename to --summary-mode  (Howard)

Thanks,
Namhyung


Namhyung Kim (4):
  perf trace: Allocate syscall stats only if summary is on
  perf trace: Convert syscall_stats to hashmap
  perf tools: Get rid of now-unused rb_resort.h
  perf trace: Add --summary-mode option

 tools/perf/Documentation/perf-trace.txt |   4 +
 tools/perf/builtin-trace.c              | 247 +++++++++++++++++++-----
 tools/perf/util/rb_resort.h             | 146 --------------
 3 files changed, 203 insertions(+), 194 deletions(-)
 delete mode 100644 tools/perf/util/rb_resort.h

-- 
2.48.1.502.g6dc24dfdaf-goog
Re: [PATCH v3 0/4] perf trace: Add --summary-mode option
Posted by Namhyung Kim 10 months ago
On Wed, 05 Feb 2025 12:54:39 -0800, Namhyung Kim wrote:
> I've realized that perf trace shows system call summary at the end for
> each thread.  But sometimes users want to see the global whole system
> summary or statistics instead.
> 
> So I've added --summary-mode option like below:
> 
>     $ sudo ./perf trace -as --summary-mode=total sleep 1
> 
> [...]
Applied to perf-tools-next, thanks!

Best regards,
Namhyung
Re: [PATCH v3 0/4] perf trace: Add --summary-mode option
Posted by Howard Chu 10 months, 1 week ago
Hello Namhyung,

On Wed, Feb 5, 2025 at 12:54 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> Hello,
>
> I've realized that perf trace shows system call summary at the end for
> each thread.  But sometimes users want to see the global whole system
> summary or statistics instead.
>
> So I've added --summary-mode option like below:
>
>     $ sudo ./perf trace -as --summary-mode=total sleep 1
>
>      Summary of events:
>
>      total, 21580 events
>
>        syscall            calls  errors  total       min       avg       max       stddev
>                                          (msec)    (msec)    (msec)    (msec)        (%)
>        --------------- --------  ------ -------- --------- --------- ---------     ------
>        epoll_wait          1305      0 14716.712     0.000    11.277   551.529      8.87%
>        futex               1256     89 13331.197     0.000    10.614   733.722     15.49%
>        poll                 669      0  6806.618     0.000    10.174   459.316     11.77%
>        ppoll                220      0  3968.797     0.000    18.040   516.775     25.35%
>        clock_nanosleep        1      0  1000.027  1000.027  1000.027  1000.027      0.00%
>        epoll_pwait           21      0   592.783     0.000    28.228   522.293     88.29%
>        nanosleep             16      0    60.515     0.000     3.782    10.123     33.33%
>        ioctl                510      0     4.284     0.001     0.008     0.182      8.84%
>        recvmsg             1434    775     3.497     0.001     0.002     0.174      6.37%
>        write               1393      0     2.854     0.001     0.002     0.017      1.79%
>        read                1063    100     2.236     0.000     0.002     0.083      5.11%
>        ...
>
> Also it changes internal data structure to hash table to track
> statistics of syscalls.  And removes the rb_resort code.
>
> v3 changes)
> * Add Acked-by from Howard
> * Update commit messages  (Ian)

Sorry for the delay.

Reviewed-by: Howard Chu <howardchu95@gmail.com>

Thanks,
Howard
>
> v2 changes)
> * Rebase to current perf-tools-next
> * Fix some style issues  (Howard)
> * Rename to --summary-mode  (Howard)
>
> Thanks,
> Namhyung
>
>
> Namhyung Kim (4):
>   perf trace: Allocate syscall stats only if summary is on
>   perf trace: Convert syscall_stats to hashmap
>   perf tools: Get rid of now-unused rb_resort.h
>   perf trace: Add --summary-mode option
>
>  tools/perf/Documentation/perf-trace.txt |   4 +
>  tools/perf/builtin-trace.c              | 247 +++++++++++++++++++-----
>  tools/perf/util/rb_resort.h             | 146 --------------
>  3 files changed, 203 insertions(+), 194 deletions(-)
>  delete mode 100644 tools/perf/util/rb_resort.h
>
> --
> 2.48.1.502.g6dc24dfdaf-goog
>
Re: [PATCH v3 0/4] perf trace: Add --summary-mode option
Posted by Namhyung Kim 10 months ago
On Fri, Feb 07, 2025 at 09:25:02PM -0800, Howard Chu wrote:
> Hello Namhyung,
> 
> On Wed, Feb 5, 2025 at 12:54 PM Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > Hello,
> >
> > I've realized that perf trace shows system call summary at the end for
> > each thread.  But sometimes users want to see the global whole system
> > summary or statistics instead.
> >
> > So I've added --summary-mode option like below:
> >
> >     $ sudo ./perf trace -as --summary-mode=total sleep 1
> >
> >      Summary of events:
> >
> >      total, 21580 events
> >
> >        syscall            calls  errors  total       min       avg       max       stddev
> >                                          (msec)    (msec)    (msec)    (msec)        (%)
> >        --------------- --------  ------ -------- --------- --------- ---------     ------
> >        epoll_wait          1305      0 14716.712     0.000    11.277   551.529      8.87%
> >        futex               1256     89 13331.197     0.000    10.614   733.722     15.49%
> >        poll                 669      0  6806.618     0.000    10.174   459.316     11.77%
> >        ppoll                220      0  3968.797     0.000    18.040   516.775     25.35%
> >        clock_nanosleep        1      0  1000.027  1000.027  1000.027  1000.027      0.00%
> >        epoll_pwait           21      0   592.783     0.000    28.228   522.293     88.29%
> >        nanosleep             16      0    60.515     0.000     3.782    10.123     33.33%
> >        ioctl                510      0     4.284     0.001     0.008     0.182      8.84%
> >        recvmsg             1434    775     3.497     0.001     0.002     0.174      6.37%
> >        write               1393      0     2.854     0.001     0.002     0.017      1.79%
> >        read                1063    100     2.236     0.000     0.002     0.083      5.11%
> >        ...
> >
> > Also it changes internal data structure to hash table to track
> > statistics of syscalls.  And removes the rb_resort code.
> >
> > v3 changes)
> > * Add Acked-by from Howard
> > * Update commit messages  (Ian)
> 
> Sorry for the delay.
> 
> Reviewed-by: Howard Chu <howardchu95@gmail.com>

Thanks for your review!

Arnaldo and Ian, are you ok with this?

Thanks,
Namhyung

> >
> > v2 changes)
> > * Rebase to current perf-tools-next
> > * Fix some style issues  (Howard)
> > * Rename to --summary-mode  (Howard)
> >
> > Thanks,
> > Namhyung
> >
> >
> > Namhyung Kim (4):
> >   perf trace: Allocate syscall stats only if summary is on
> >   perf trace: Convert syscall_stats to hashmap
> >   perf tools: Get rid of now-unused rb_resort.h
> >   perf trace: Add --summary-mode option
> >
> >  tools/perf/Documentation/perf-trace.txt |   4 +
> >  tools/perf/builtin-trace.c              | 247 +++++++++++++++++++-----
> >  tools/perf/util/rb_resort.h             | 146 --------------
> >  3 files changed, 203 insertions(+), 194 deletions(-)
> >  delete mode 100644 tools/perf/util/rb_resort.h
> >
> > --
> > 2.48.1.502.g6dc24dfdaf-goog
> >
Re: [PATCH v3 0/4] perf trace: Add --summary-mode option
Posted by Arnaldo Carvalho de Melo 10 months ago
On Wed, Feb 12, 2025 at 10:49:44AM -0800, Namhyung Kim wrote:
> On Fri, Feb 07, 2025 at 09:25:02PM -0800, Howard Chu wrote:
> > Hello Namhyung,
> > 
> > On Wed, Feb 5, 2025 at 12:54 PM Namhyung Kim <namhyung@kernel.org> wrote:
> > >
> > > Hello,
> > >
> > > I've realized that perf trace shows system call summary at the end for
> > > each thread.  But sometimes users want to see the global whole system
> > > summary or statistics instead.
> > >
> > > So I've added --summary-mode option like below:
> > >
> > >     $ sudo ./perf trace -as --summary-mode=total sleep 1
> > >
> > >      Summary of events:
> > >
> > >      total, 21580 events
> > >
> > >        syscall            calls  errors  total       min       avg       max       stddev
> > >                                          (msec)    (msec)    (msec)    (msec)        (%)
> > >        --------------- --------  ------ -------- --------- --------- ---------     ------
> > >        epoll_wait          1305      0 14716.712     0.000    11.277   551.529      8.87%
> > >        futex               1256     89 13331.197     0.000    10.614   733.722     15.49%
> > >        poll                 669      0  6806.618     0.000    10.174   459.316     11.77%
> > >        ppoll                220      0  3968.797     0.000    18.040   516.775     25.35%
> > >        clock_nanosleep        1      0  1000.027  1000.027  1000.027  1000.027      0.00%
> > >        epoll_pwait           21      0   592.783     0.000    28.228   522.293     88.29%
> > >        nanosleep             16      0    60.515     0.000     3.782    10.123     33.33%
> > >        ioctl                510      0     4.284     0.001     0.008     0.182      8.84%
> > >        recvmsg             1434    775     3.497     0.001     0.002     0.174      6.37%
> > >        write               1393      0     2.854     0.001     0.002     0.017      1.79%
> > >        read                1063    100     2.236     0.000     0.002     0.083      5.11%
> > >        ...
> > >
> > > Also it changes internal data structure to hash table to track
> > > statistics of syscalls.  And removes the rb_resort code.
> > >
> > > v3 changes)
> > > * Add Acked-by from Howard
> > > * Update commit messages  (Ian)
> > 
> > Sorry for the delay.
> > 
> > Reviewed-by: Howard Chu <howardchu95@gmail.com>
> 
> Thanks for your review!
> 
> Arnaldo and Ian, are you ok with this?

I looked at it quickly, some minor nits, apart from that, for the
series:

Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>

- Arnaldo
Re: [PATCH v3 0/4] perf trace: Add --summary-mode option
Posted by Namhyung Kim 10 months ago
On Wed, Feb 12, 2025 at 09:59:26PM +0100, Arnaldo Carvalho de Melo wrote:
> On Wed, Feb 12, 2025 at 10:49:44AM -0800, Namhyung Kim wrote:
> > On Fri, Feb 07, 2025 at 09:25:02PM -0800, Howard Chu wrote:
> > > Hello Namhyung,
> > > 
> > > On Wed, Feb 5, 2025 at 12:54 PM Namhyung Kim <namhyung@kernel.org> wrote:
> > > >
> > > > Hello,
> > > >
> > > > I've realized that perf trace shows system call summary at the end for
> > > > each thread.  But sometimes users want to see the global whole system
> > > > summary or statistics instead.
> > > >
> > > > So I've added --summary-mode option like below:
> > > >
> > > >     $ sudo ./perf trace -as --summary-mode=total sleep 1
> > > >
> > > >      Summary of events:
> > > >
> > > >      total, 21580 events
> > > >
> > > >        syscall            calls  errors  total       min       avg       max       stddev
> > > >                                          (msec)    (msec)    (msec)    (msec)        (%)
> > > >        --------------- --------  ------ -------- --------- --------- ---------     ------
> > > >        epoll_wait          1305      0 14716.712     0.000    11.277   551.529      8.87%
> > > >        futex               1256     89 13331.197     0.000    10.614   733.722     15.49%
> > > >        poll                 669      0  6806.618     0.000    10.174   459.316     11.77%
> > > >        ppoll                220      0  3968.797     0.000    18.040   516.775     25.35%
> > > >        clock_nanosleep        1      0  1000.027  1000.027  1000.027  1000.027      0.00%
> > > >        epoll_pwait           21      0   592.783     0.000    28.228   522.293     88.29%
> > > >        nanosleep             16      0    60.515     0.000     3.782    10.123     33.33%
> > > >        ioctl                510      0     4.284     0.001     0.008     0.182      8.84%
> > > >        recvmsg             1434    775     3.497     0.001     0.002     0.174      6.37%
> > > >        write               1393      0     2.854     0.001     0.002     0.017      1.79%
> > > >        read                1063    100     2.236     0.000     0.002     0.083      5.11%
> > > >        ...
> > > >
> > > > Also it changes internal data structure to hash table to track
> > > > statistics of syscalls.  And removes the rb_resort code.
> > > >
> > > > v3 changes)
> > > > * Add Acked-by from Howard
> > > > * Update commit messages  (Ian)
> > > 
> > > Sorry for the delay.
> > > 
> > > Reviewed-by: Howard Chu <howardchu95@gmail.com>
> > 
> > Thanks for your review!
> > 
> > Arnaldo and Ian, are you ok with this?
> 
> I looked at it quickly, some minor nits, apart from that, for the
> series:
> 
> Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>

Thanks, I'll update them.
Namhyung