From: Ingo Molnar <mingo@kernel.org>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
Ian Rogers <irogers@google.com>,
Kan Liang <kan.liang@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Peter Zijlstra <peterz@infradead.org>,
LKML <linux-kernel@vger.kernel.org>,
linux-perf-users@vger.kernel.org, Andi Kleen <ak@linux.intel.com>,
Dmitry Vyukov <dvyukov@google.com>
Subject: Re: [RFC/PATCH] perf report: Support latency profiling in system-wide mode
Date: Sun, 4 May 2025 10:22:26 +0200 [thread overview]
Message-ID: <aBcjwoINtWRWKMIJ@gmail.com> (raw)
In-Reply-To: <20250503003620.45072-1-namhyung@kernel.org>
* Namhyung Kim <namhyung@kernel.org> wrote:
> When it profile a target process (and its children), it's
> straight-forward to track parallelism using sched-switch info. The
> parallelism is kept in machine-level in this case.
>
> But when it profile multiple processes like in the system-wide mode,
> it might not be clear how to apply the (machine-level) parallelism to
> different tasks. That's why it disabled the latency profiling for
> system-wide mode.
>
> But it should be able to track parallelism in each process and it'd
> useful to profile latency issues in multi-threaded programs. So this
> patch tries to enable it.
>
> However using sched-switch info can be a problem since it may emit a lot
> more data and more chances for losing data when perf cannot keep up with
> it.
>
> Instead, it can maintain the current process for each CPU when it sees
> samples. And the process updates parallelism so that it can calculate
> the latency based on the value. One more point to improve is to remove
> the idle task from latency calculation.
>
> Here's an example:
>
> # perf record -a -- perf bench sched messaging
>
> This basically forks each sender and receiver tasks for the run.
>
> # perf report --latency -s comm --stdio
> ...
> #
> # Latency Overhead Command
> # ........ ........ ...............
> #
> 98.14% 95.97% sched-messaging
> 0.78% 0.93% gnome-shell
> 0.36% 0.34% ptyxis
> 0.23% 0.23% kworker/u112:0-
> 0.23% 0.44% perf
> 0.08% 0.10% KMS thread
> 0.05% 0.05% rcu_preempt
> 0.05% 0.05% kworker/u113:2-
> ...
Just a generic user-interface comment: I had to look up what 'latency'
means in this context, and went about 3 hops deep into various pieces
of description until I found Documentation/cpu-and-latency-overheads.txt,
where after a bit of head-scratching I realized that 'latency' is a
weird alias for 'wall-clock time'...
This is *highly* confusing terminology IMHO.
'Latency' is a highly overloaded concept that almost never corresponds
to 'wall clock time'. It usually means a relative delay value, which is
why I initially thought this somehow means instruction-latency or
memory-latency profiling ...
Ie. 'latency' in its naive meaning, is on the exact opposite side of
the terminology spectrum of where it should be: it suggests relative
time, while in reality it's connected to wall-clock/absolute time ...
*Please* use something else. Wall-clock is fine, as
cpu-and-latency-overheads.txt uses initially, but so would be other
combinations:
#1: 'CPU time' vs. 'real time'
This is short, although a disadvantage is the possible
'real-time kernel' source of confusion here.
#2: 'CPU time' vs. 'wall-clock time'
This is longer but OK and unambiguous.
#3: 'relative time' vs. 'absolute time'
This is short and straightforward, and might be my favorite
personally, because relative/absolute is such an unambiguous
and well-known terminology and often paired in a similar
fashion.
#4: 'CPU time' vs. 'absolute time'
This is a combination of #1 and #3 that keeps the 'CPU time'
terminology for relative time. The CPU/absolute pairing is not
that intuitive though.
#5: 'CPU time' vs. 'latency'
This is really, really bad and unintuitive. Sorry to be so
harsh and negative about this choice, but this is such a nice
feature, which suffers from confusing naming. :-)
Thanks,
Ingo
next prev parent reply other threads:[~2025-05-04 8:22 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-03 0:36 [RFC/PATCH] perf report: Support latency profiling in system-wide mode Namhyung Kim
2025-05-04 8:22 ` Ingo Molnar [this message]
2025-05-04 19:52 ` Namhyung Kim
2025-05-05 8:03 ` Dmitry Vyukov
2025-05-06 14:57 ` Arnaldo Carvalho de Melo
2025-05-06 16:58 ` Arnaldo Carvalho de Melo
2025-05-07 9:58 ` Dmitry Vyukov
2025-05-07 15:47 ` Arnaldo Carvalho de Melo
2025-05-07 23:51 ` Namhyung Kim
2025-05-05 8:08 ` Dmitry Vyukov
2025-05-06 5:30 ` Namhyung Kim
2025-05-06 5:55 ` Dmitry Vyukov
2025-05-06 6:43 ` Namhyung Kim
2025-05-06 6:46 ` Dmitry Vyukov
2025-05-06 7:09 ` Namhyung Kim
2025-05-06 7:40 ` Dmitry Vyukov
2025-05-07 23:43 ` Namhyung Kim
2025-05-08 12:24 ` Dmitry Vyukov
2025-05-16 16:33 ` Namhyung Kim
2025-05-19 6:00 ` Dmitry Vyukov
2025-05-20 1:43 ` Namhyung Kim
2025-05-20 6:45 ` Dmitry Vyukov
2025-05-20 22:50 ` Namhyung Kim
2025-05-21 7:30 ` Dmitry Vyukov
2025-05-27 7:14 ` Dmitry Vyukov
2025-05-28 18:38 ` Namhyung Kim
2025-05-30 5:50 ` Dmitry Vyukov
2025-05-30 22:05 ` Namhyung Kim
2025-05-31 6:31 ` Dmitry Vyukov
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=aBcjwoINtWRWKMIJ@gmail.com \
--to=mingo@kernel.org \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=ak@linux.intel.com \
--cc=dvyukov@google.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.