Re: [PATCH 0/6] perf lock contention: Add more filter options (v1)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em Mon, Dec 19, 2022 at 12:17:26PM -0800, Namhyung Kim escreveu:
> Hello,
> 
> This patchset adds a couple of filters to perf lock contention command.

Thanks, applied.

- Arnaldo

 
> The -Y/--type-filter is to filter by lock types like spinlock or mutex.
> 
>   $ sudo ./perf lock con -ab -Y spinlock -E 3 -- ./perf bench sched messaging
>   # Running 'sched/messaging' benchmark:
>   # 20 sender and receiver processes per group
>   # 10 groups == 400 processes run
> 
>        Total time: 0.167 [sec]
>    contended   total wait     max wait     avg wait         type   caller
> 
>           11    669.31 us    107.17 us     60.85 us     spinlock   remove_wait_queue+0x14
>           10    586.85 us     87.62 us     58.68 us     spinlock   prepare_to_wait+0x27
>          186    497.36 us     12.94 us      2.67 us     spinlock   try_to_wake_up+0x1f5
> 
> For the same workload, you can see the rwlock results only like below.
> 
>   $ sudo ./perf lock con -ab -Y rwlock -E 3 -- ./perf bench sched messaging
>   # Running 'sched/messaging' benchmark:
>   # 20 sender and receiver processes per group
>   # 10 groups == 400 processes run
> 
>        Total time: 0.171 [sec]
>    contended   total wait     max wait     avg wait         type   caller
> 
>           20    142.11 us     17.10 us      7.11 us     rwlock:W   do_exit+0x36d
>            3     26.49 us     12.04 us      8.83 us     rwlock:W   release_task+0x6e
>            5     12.46 us      5.12 us      2.49 us     rwlock:R   do_wait+0x8b
> 
> The -L/--lock-filter is to filter by lock address or name.  You can use
> the existing -l/--lock-addr option to get the info.
> 
>   $ sudo ./perf lock con -abl -- ./perf bench sched messaging 2>&1 | grep tasklist_lock
>           25     39.78 us     16.51 us      1.59 us   ffffffff9d006080   tasklist_lock
> 
> And use it with -L option like below.
> 
>   $ sudo ./perf lock con -ab -L tasklist_lock -- ./perf bench sched messaging 2>&1
>   # Running 'sched/messaging' benchmark:
>   # 20 sender and receiver processes per group
>   # 10 groups == 400 processes run
> 
>        Total time: 0.174 [sec]
>    contended   total wait     max wait     avg wait         type   caller
> 
>           22    227.18 us     24.16 us     10.33 us     rwlock:W   do_exit+0x36d
>            3     26.12 us     18.03 us      8.71 us     rwlock:W   release_task+0x6e
> 
> Passing the address is supported too.
> 
>   $ sudo ./perf lock con -ab -L ffffffff9d006080 -- ./perf bench sched messaging 2>&1
>   # Running 'sched/messaging' benchmark:
>   # 20 sender and receiver processes per group
>   # 10 groups == 400 processes run
> 
>        Total time: 0.190 [sec]
>    contended   total wait     max wait     avg wait         type   caller
> 
>           28    276.62 us     16.90 us      9.88 us     rwlock:W   do_exit+0x36d
>            4     22.36 us      7.04 us      5.59 us     rwlock:R   do_wait+0x8b
>            2     10.51 us      5.38 us      5.25 us     rwlock:W   release_task+0x6e
> 
> You can get it from 'perf/lock-filter-v1' branch in
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
> 
> Thanks,
> Namhyung
> 
> 
> Namhyung Kim (6):
>   perf lock contention: Factor out lock_type_table
>   perf lock contention: Add -Y/--type-filter option
>   perf lock contention: Support lock type filtering for BPF
>   perf lock contention: Add -L/--lock-filter option
>   perf lock contention: Support lock addr/name filtering for BPF
>   perf test: Update perf lock contention test
> 
>  tools/perf/Documentation/perf-lock.txt        |  27 +-
>  tools/perf/builtin-lock.c                     | 305 ++++++++++++++++--
>  tools/perf/tests/shell/lock_contention.sh     |  58 +++-
>  tools/perf/util/bpf_lock_contention.c         |  55 +++-
>  .../perf/util/bpf_skel/lock_contention.bpf.c  |  38 ++-
>  tools/perf/util/lock-contention.h             |  10 +
>  6 files changed, 451 insertions(+), 42 deletions(-)
> 
> 
> base-commit: 51c4f2bf5397b34b79a6712221606e0ab2e6f7ed
> -- 
> 2.39.0.314.g84b9a713c41-goog

-- 

- Arnaldo



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux