From: Namhyung Kim <namhyung@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>, Jiri Olsa <jolsa@kernel.org>
Cc: Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
linux-perf-users@vger.kernel.org, Song Liu <song@kernel.org>,
Hao Luo <haoluo@google.com>,
bpf@vger.kernel.org
Subject: [PATCHSET 0/5] perf lock contention: Add cgroup support (v2)
Date: Wed, 6 Sep 2023 10:48:58 -0700 [thread overview]
Message-ID: <20230906174903.346486-1-namhyung@kernel.org> (raw)
Hello,
The cgroup support comes with two flavors. One is to aggregate the
result by cgroups and the other is to filter result for the given
cgroups. For now, it only works in BPF mode.
* v2 changes
- fix compiler errors (Arnaldo)
- add Reviewed-by from Ian
The first one is -g/--lock-cgroup option to show lock stats by cgroups
like below. The cgroup names were shortened for brevity:
$ sudo perf lock con -abg perf bench sched messaging
contended total wait max wait avg wait cgroup
1052 3.34 ms 84.71 us 3.17 us /app-org.gnome.Terminal.slice/vte-spawn-52221fb8-b33f-4a52-b5c3-e35d1e6fc0e0.scope
13 106.60 us 11.48 us 8.20 us /session.slice/org.gnome.Shell@x11.service
12 21.20 us 4.93 us 1.77 us /
3 12.10 us 8.80 us 4.03 us /session-4.scope
2 10.98 us 7.50 us 5.49 us /app-gnome-firefox\x2desr-34054.scope
2 6.04 us 4.88 us 3.02 us /app-gnome-google\x2dchrome-6442.scope
1 5.63 us 5.63 us 5.63 us /app-org.gnome.Terminal.slice/gnome-terminal-server.service
1 3.51 us 3.51 us 3.51 us /pipewire.service
1 2.15 us 2.15 us 2.15 us /pipewire-pulse.service
1 742 ns 742 ns 742 ns /dbus.service
The other is -G/--cgroup-filter option to show lock stats only from the
given cgroups. It doesn't support cgroup hierarchy and regex matching.
$ sudo perf lock con -abt -G / perf bench sched messaging
contended total wait max wait avg wait pid comm
2 10.58 us 8.39 us 5.29 us 257552 kworker/4:1
2 9.76 us 7.96 us 4.88 us 0 swapper
4 5.36 us 2.09 us 1.34 us 255462 kworker/0:2
3 3.33 us 1.48 us 1.11 us 257680 kworker/3:1
2 2.59 us 1.46 us 1.29 us 257478 kworker/2:2
1 1.50 us 1.50 us 1.50 us 15 rcu_preempt
You can also use these two options together. :)
The two more test cases were added to the existing lock contention test.
The code is available at 'perf/lock-cgroup-v2' branch in the tree below.
git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
Thanks,
Namhyung
Namhyung Kim (5):
perf tools: Add read_all_cgroups() and __cgroup_find()
perf lock contention: Prepare to handle cgroups
perf lock contention: Add -g/--lock-cgroup option
perf lock contention: Add -G/--cgroup-filter option
perf test: Improve perf lock contention test
tools/perf/Documentation/perf-lock.txt | 8 ++
tools/perf/builtin-lock.c | 99 ++++++++++++++++++-
tools/perf/tests/shell/lock_contention.sh | 45 +++++++++
tools/perf/util/bpf_lock_contention.c | 51 +++++++++-
.../perf/util/bpf_skel/lock_contention.bpf.c | 48 ++++++++-
tools/perf/util/bpf_skel/lock_data.h | 3 +-
tools/perf/util/cgroup.c | 63 ++++++++++--
tools/perf/util/cgroup.h | 5 +
tools/perf/util/lock-contention.h | 10 +-
9 files changed, 312 insertions(+), 20 deletions(-)
base-commit: 45fc4628c15ab2cb7b2f53354b21db63f0a41f81
--
2.42.0.283.g2d96d420d3-goog
next reply other threads:[~2023-09-06 17:49 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-06 17:48 Namhyung Kim [this message]
2023-09-06 17:48 ` [PATCH 1/5] perf tools: Add read_all_cgroups() and __cgroup_find() Namhyung Kim
2023-09-06 17:49 ` [PATCH 2/5] perf lock contention: Prepare to handle cgroups Namhyung Kim
2023-09-06 17:49 ` [PATCH 3/5] perf lock contention: Add -g/--lock-cgroup option Namhyung Kim
2023-09-06 19:23 ` Arnaldo Carvalho de Melo
2023-09-06 19:29 ` Arnaldo Carvalho de Melo
2023-09-06 17:49 ` [PATCH 4/5] perf lock contention: Add -G/--cgroup-filter option Namhyung Kim
2023-09-06 17:49 ` [PATCH 5/5] perf test: Improve perf lock contention test Namhyung Kim
2023-09-06 21:28 ` [PATCHSET 0/5] perf lock contention: Add cgroup support (v2) Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230906174903.346486-1-namhyung@kernel.org \
--to=namhyung@kernel.org \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=bpf@vger.kernel.org \
--cc=haoluo@google.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=song@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).