linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC/PATCH 0/3] perf lock contention: Track lock owner (v2)
@ 2023-02-07  0:24 Namhyung Kim
  2023-02-07  0:24 ` [PATCH 1/3] perf lock contention: Fix to save callstack for the default modified Namhyung Kim
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Namhyung Kim @ 2023-02-07  0:24 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Jiri Olsa
  Cc: Ingo Molnar, Peter Zijlstra, LKML, Ian Rogers, Adrian Hunter,
	linux-perf-users, Will Deacon, Waiman Long, Boqun Feng,
	Davidlohr Bueso, Song Liu, Hao Luo, bpf

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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-02-08 13:37 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-07  0:24 [RFC/PATCH 0/3] perf lock contention: Track lock owner (v2) Namhyung Kim
2023-02-07  0:24 ` [PATCH 1/3] perf lock contention: Fix to save callstack for the default modified Namhyung Kim
2023-02-07 22:22   ` Namhyung Kim
2023-02-07  0:24 ` [PATCH 2/3] perf lock contention: Add -o/--lock-owner option Namhyung Kim
2023-02-07 15:11   ` Arnaldo Carvalho de Melo
2023-02-07 22:20     ` Namhyung Kim
2023-02-07  0:24 ` [PATCH 3/3] perf lock contention: Support old rw_semaphore type Namhyung Kim
2023-02-08 13:37 ` [RFC/PATCH 0/3] perf lock contention: Track lock owner (v2) Arnaldo Carvalho de Melo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).