From: Ian Rogers <irogers@google.com>
To: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
"Dr. David Alan Gilbert" <linux@treblig.org>,
Yang Li <yang.lee@linux.alibaba.com>,
James Clark <james.clark@linaro.org>,
Thomas Falcon <thomas.falcon@intel.com>,
Thomas Richter <tmricht@linux.ibm.com>,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
Andi Kleen <ak@linux.intel.com>,
Dapeng Mi <dapeng1.mi@linux.intel.com>,
Andres Freund <andres@anarazel.de>
Subject: [PATCH v7 0/6] perf stat affinity changes
Date: Tue, 3 Feb 2026 14:51:23 -0800 [thread overview]
Message-ID: <20260203225129.4077140-1-irogers@google.com> (raw)
Change how affinities work with evlist__for_each_cpu. Move the
affinity code into the iterator to simplify setting it up. Detect when
affinities will and won't be profitable, for example a tool event and
a regular perf event (or read group) may face less delay from a single
IPI for the event read than from a call to sched_setaffinity. Add a
--no-affinity flag to perf stat to allow affinities to be disabled.
v7: Revert "perf tool_pmu: More accurately set the cpus for tool
events" that caused issues with user specified CPUs (Andres Freund
<andres@anarazel.de>). Fix a null test is prepare_metric so that
missing events can't trigger segfaults (Andres Freund). Make the
CPU map propagation improve the CPU maps for tool events that only
read on index 0, this allows later setting when
evlist__create_maps is called with the correct user CPUs. Rebase
previous non-merged affinity changes that hadn't been picked up
yet.
v6: Drop merged tool event change. Move TPEBS fix into its own patch
1st.
https://lore.kernel.org/lkml/20260108212652.768875-1-irogers@google.com/
v5: Drop merged changes. Move tool event reading to first
patch. Change --no-affinity flag to --affinity/--no-affinity flag.
https://lore.kernel.org/lkml/20251118211326.1840989-1-irogers@google.com/
On v5 there was discussion with Andi Kleen who points out that
affinities will work better with real time priorities but using
this requires privileges.
v4: Rebase. Add patch to reduce scope of walltime_nsec_stats now that
the legacy metric code is no more. Minor tweak to the ru_stats
clean up.
https://lore.kernel.org/lkml/20251113180517.44096-1-irogers@google.com/
v3: Add affinity clean ups and read tool events last.
https://lore.kernel.org/lkml/20251106071241.141234-1-irogers@google.com/
v2: Fixed an aggregation index issue:
https://lore.kernel.org/lkml/20251104234148.3103176-2-irogers@google.com/
v1:
https://lore.kernel.org/lkml/20251104053449.1208800-1-irogers@google.com/
Ian Rogers (6):
Revert "perf tool_pmu: More accurately set the cpus for tool events"
perf stat-shadow: In prepare_metric fix guard on reading NULL
perf_stat_evsel
perf evlist: Special map propagation for tool events that read on 1
CPU
perf evlist: Missing TPEBS close in evlist__close
perf evlist: Reduce affinity use and move into iterator, fix no
affinity
perf stat: Add no-affinity flag
tools/lib/perf/evlist.c | 36 +++++-
tools/lib/perf/include/internal/evsel.h | 2 +
tools/perf/Documentation/perf-stat.txt | 4 +
tools/perf/builtin-stat.c | 114 ++++++++---------
tools/perf/util/evlist.c | 156 +++++++++++++++---------
tools/perf/util/evlist.h | 27 ++--
tools/perf/util/parse-events.c | 10 +-
tools/perf/util/pmu.c | 23 ++++
tools/perf/util/pmu.h | 3 +
tools/perf/util/stat-shadow.c | 7 +-
tools/perf/util/tool_pmu.c | 19 ---
tools/perf/util/tool_pmu.h | 1 -
12 files changed, 237 insertions(+), 165 deletions(-)
--
2.53.0.rc2.204.g2597b5adb4-goog
next reply other threads:[~2026-02-03 22:51 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-03 22:51 Ian Rogers [this message]
2026-02-03 22:51 ` [PATCH v7 1/6] Revert "perf tool_pmu: More accurately set the cpus for tool events" Ian Rogers
2026-02-03 22:51 ` [PATCH v7 2/6] perf stat-shadow: In prepare_metric fix guard on reading NULL perf_stat_evsel Ian Rogers
2026-02-03 22:51 ` [PATCH v7 3/6] perf evlist: Special map propagation for tool events that read on 1 CPU Ian Rogers
2026-02-03 22:51 ` [PATCH v7 4/6] perf evlist: Missing TPEBS close in evlist__close Ian Rogers
2026-02-03 22:51 ` [PATCH v7 5/6] perf evlist: Reduce affinity use and move into iterator, fix no affinity Ian Rogers
2026-02-03 22:51 ` [PATCH v7 6/6] perf stat: Add no-affinity flag Ian Rogers
2026-02-06 21:35 ` [PATCH v7 0/6] perf stat affinity changes Arnaldo Carvalho de Melo
2026-02-06 22:01 ` Ian Rogers
2026-02-06 22:13 ` Arnaldo Carvalho de Melo
2026-02-06 22:25 ` [PATCH v8 " Ian Rogers
2026-02-06 22:25 ` [PATCH v8 1/6] Revert "perf tool_pmu: More accurately set the cpus for tool events" Ian Rogers
2026-02-09 23:10 ` Ian Rogers
2026-02-06 22:25 ` [PATCH v8 2/6] perf stat-shadow: In prepare_metric fix guard on reading NULL perf_stat_evsel Ian Rogers
2026-02-06 22:25 ` [PATCH v8 3/6] perf evlist: Special map propagation for tool events that read on 1 CPU Ian Rogers
2026-02-06 22:25 ` [PATCH v8 4/6] perf evlist: Missing TPEBS close in evlist__close Ian Rogers
2026-02-06 22:25 ` [PATCH v8 5/6] perf evlist: Reduce affinity use and move into iterator, fix no affinity Ian Rogers
2026-02-06 22:25 ` [PATCH v8 6/6] perf stat: Add no-affinity flag Ian Rogers
2026-02-07 12:51 ` Arnaldo Carvalho de Melo
2026-02-07 15:54 ` Ian Rogers
2026-02-10 1:18 ` Namhyung Kim
2026-02-10 6:03 ` [PATCH v9 0/6] perf stat affinity changes Ian Rogers
2026-02-10 6:03 ` Ian Rogers
2026-02-10 6:03 ` [PATCH v9 1/6] Revert "perf tool_pmu: More accurately set the cpus for tool events" Ian Rogers
2026-02-10 6:03 ` [PATCH v9 2/6] perf stat-shadow: In prepare_metric fix guard on reading NULL perf_stat_evsel Ian Rogers
2026-02-10 6:03 ` [PATCH v9 3/6] perf evlist: Special map propagation for tool events that read on 1 CPU Ian Rogers
2026-02-10 6:03 ` [PATCH v9 4/6] perf evlist: Missing TPEBS close in evlist__close Ian Rogers
2026-02-10 6:03 ` [PATCH v9 5/6] perf evlist: Reduce affinity use and move into iterator, fix no affinity Ian Rogers
2026-02-10 6:03 ` [PATCH v9 6/6] perf stat: Add no-affinity flag Ian Rogers
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=20260203225129.4077140-1-irogers@google.com \
--to=irogers@google.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=andres@anarazel.de \
--cc=dapeng1.mi@linux.intel.com \
--cc=james.clark@linaro.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux@treblig.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=thomas.falcon@intel.com \
--cc=tmricht@linux.ibm.com \
--cc=yang.lee@linux.alibaba.com \
/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