[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230207002403.63590-1-namhyung@kernel.org>
Date: Mon, 6 Feb 2023 16:24:00 -0800
From: Namhyung Kim <namhyung@...nel.org>
To: Arnaldo Carvalho de Melo <acme@...nel.org>,
Jiri Olsa <jolsa@...nel.org>
Cc: 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, Will Deacon <will@...nel.org>,
Waiman Long <longman@...hat.com>,
Boqun Feng <boqun.feng@...il.com>,
Davidlohr Bueso <dave@...olabs.net>,
Song Liu <song@...nel.org>, Hao Luo <haoluo@...gle.com>,
bpf@...r.kernel.org
Subject: [RFC/PATCH 0/3] perf lock contention: Track lock owner (v2)
Hello,
When there're many lock contentions in the system, people sometimes
want to know who caused the contention, IOW who's the owner of the
locks.
This patchset adds -o/--lock-owner option to track the owner info
if it's available. Right now, it supports mutex and rwsem as they
have the owner fields in themselves. Please see the patch 2 for the
details.
Changes in v2)
* fix missing callstacks
* support old rwsem type with recent clang (>= 15.0)
The patch 1 is a fix for missing callstacks and the patch 2 is the
main change. The patch 3 adds support for old kernels when compiler
supports a recent builtin to check field type in a struct (Thanks
to Hao).
Example output (for mutex only):
$ sudo ./perf lock con -abo -Y mutex -- ./perf bench sched pipe
# Running 'sched/pipe' benchmark:
# Executed 1000000 pipe operations between two processes
Total time: 4.910 [sec]
4.910435 usecs/op
203647 ops/sec
contended total wait max wait avg wait pid owner
2 15.50 us 8.29 us 7.75 us 1582852 sched-pipe
7 7.20 us 2.47 us 1.03 us -1 Unknown
1 6.74 us 6.74 us 6.74 us 1582851 sched-pipe
You can get it from 'perf/lock-owner-v2' branch in
git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
Thanks,
Namhyung
Namhyung Kim (3):
perf lock contention: Fix to save callstack for the default modified
perf lock contention: Add -o/--lock-owner option
perf lock contention: Support old rw_semaphore type
tools/perf/Documentation/perf-lock.txt | 5 +
tools/perf/builtin-lock.c | 52 +++++++++--
tools/perf/util/bpf_lock_contention.c | 1 +
.../perf/util/bpf_skel/lock_contention.bpf.c | 91 ++++++++++++++++++-
tools/perf/util/lock-contention.h | 1 +
5 files changed, 136 insertions(+), 14 deletions(-)
base-commit: 17f248aa8664ff5b3643491136283e73b5c18166
--
2.39.1.519.gcb327c4b5f-goog
Powered by blists - more mailing lists