perf lock: Add contention subcommand (v1)
From: | Namhyung Kim <namhyung-AT-kernel.org> | |
To: | Arnaldo Carvalho de Melo <acme-AT-kernel.org>, Jiri Olsa <jolsa-AT-kernel.org> | |
Subject: | [PATCHSET 0/6] perf lock: Add contention subcommand (v1) | |
Date: | Wed, 20 Jul 2022 21:36:38 -0700 | |
Message-ID: | <20220721043644.153718-1-namhyung@kernel.org> | |
Cc: | Ingo Molnar <mingo-AT-kernel.org>, Peter Zijlstra <peterz-AT-infradead.org>, LKML <linux-kernel-AT-vger.kernel.org>, Ian Rogers <irogers-AT-google.com>, linux-perf-users-AT-vger.kernel.org, Will Deacon <will-AT-kernel.org>, Waiman Long <longman-AT-redhat.com>, Boqun Feng <boqun.feng-AT-gmail.com>, Davidlohr Bueso <dave-AT-stgolabs.net> | |
Archive-link: | Article |
Hello, It's to add a new subcommand 'contention' (shortly 'con') to perf lock. 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-v1' branch on git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git Thanks, Namhyung Namhyung Kim (6): perf lock: Fix a copy-n-paste bug 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 | 403 ++++++++++++++++++++++--- 2 files changed, 391 insertions(+), 35 deletions(-) base-commit: 41d0914d861e82b4eeec16dd0f6109c311cf4c7e -- 2.37.0.170.g444d1eabd0-goog