lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 20 Dec 2022 15:28:39 -0300
From:   Arnaldo Carvalho de Melo <acme@...nel.org>
To:     Namhyung Kim <namhyung@...nel.org>
Cc:     Jiri Olsa <jolsa@...nel.org>, Ingo Molnar <mingo@...nel.org>,
        Peter Zijlstra <peterz@...radead.org>,
        LKML <linux-kernel@...r.kernel.org>,
        Ian Rogers <irogers@...gle.com>,
        Adrian Hunter <adrian.hunter@...el.com>,
        linux-perf-users@...r.kernel.org, Song Liu <song@...nel.org>,
        Blake Jones <blakejones@...gle.com>, bpf@...r.kernel.org
Subject: Re: [PATCH 0/6] perf lock contention: Add more filter options (v1)

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ