Re: [PATCHSET 0/5] perf lock: Add contention subcommand (v2)

From: Arnaldo Carvalho de Melo
Date: Mon Jul 25 2022 - 17:01:43 EST


Em Mon, Jul 25, 2022 at 11:31:19AM -0700, Namhyung Kim escreveu:
> Hello,
>
> It's to add a new subcommand 'contention' (shortly 'con') to perf lock.
>
> Changes in v2)
> * bugfix is merged already
> * fix build error in patch 2
>
> The new subcommand is to handle the new lock:contention_{begin,end}
> tracepoints and shows lock type and caller address like below:
>
> $ perf lock contention
> contended total wait max wait avg wait type caller
>
> 238 1.41 ms 29.20 us 5.94 us spinlock update_blocked_averages+0x4c
> 1 902.08 us 902.08 us 902.08 us rwsem:R do_user_addr_fault+0x1dd
> 81 330.30 us 17.24 us 4.08 us spinlock _nohz_idle_balance+0x172
> 2 89.54 us 61.26 us 44.77 us spinlock do_anonymous_page+0x16d
> 24 78.36 us 12.27 us 3.27 us mutex pipe_read+0x56
> 2 71.58 us 59.56 us 35.79 us spinlock __handle_mm_fault+0x6aa
> 6 25.68 us 6.89 us 4.28 us spinlock do_idle+0x28d
> 1 18.46 us 18.46 us 18.46 us rtmutex exec_fw_cmd+0x21b
> 3 15.25 us 6.26 us 5.08 us spinlock tick_do_update_jiffies64+0x2c
> ...
>
> where rwsem:R stands for read access (down_read) for a rw-semaphore.
> Other types of lock access is obvious and it doesn't detect optimistic
> spinning on mutex yet. This is just a base work for lock contention
> analysis and more will come later.
>
> You can get this from 'perf/lock-subcmd-v2' branch on
>
> git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git

Thanks, applied locally, pushed to tmp.perf/core, will go to perf/core
after further automated tests.

- Arnaldo

> Thanks,
> Namhyung
>
>
> Namhyung Kim (5):
> perf lock: Add flags field in the lock_stat
> perf lock: Add lock aggregation enum
> perf lock: Add 'contention' subcommand
> perf lock: Add -k and -F options to 'contention' subcommand
> perf lock: Support -t option for 'contention' subcommand
>
> tools/perf/Documentation/perf-lock.txt | 23 +-
> tools/perf/builtin-lock.c | 401 +++++++++++++++++++++++--
> 2 files changed, 390 insertions(+), 34 deletions(-)
>
>
> base-commit: 9fe9b252c7c022df8e503435e778f15c04dfa3bf
> --
> 2.37.1.359.gd136c6c3e2-goog

--

- Arnaldo