From: Greg Kroah-Hartman Date: Fri, 29 Mar 2024 13:18:55 +0000 (+0100) Subject: 6.6-stable patches X-Git-Tag: v6.7.12~140 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fff7733eab090a977ac3760a3e4b35887ef708b8;p=thirdparty%2Fkernel%2Fstable-queue.git 6.6-stable patches added patches: perf-top-use-evsel-s-cpus-to-replace-user_requested_cpus.patch --- diff --git a/queue-6.6/perf-top-use-evsel-s-cpus-to-replace-user_requested_cpus.patch b/queue-6.6/perf-top-use-evsel-s-cpus-to-replace-user_requested_cpus.patch new file mode 100644 index 00000000000..809b3ebefb0 --- /dev/null +++ b/queue-6.6/perf-top-use-evsel-s-cpus-to-replace-user_requested_cpus.patch @@ -0,0 +1,63 @@ +From 5fa695e7da4975e8d21ce49f3718d6cf00ecb75e Mon Sep 17 00:00:00 2001 +From: Kan Liang +Date: Thu, 14 Dec 2023 06:46:11 -0800 +Subject: perf top: Use evsel's cpus to replace user_requested_cpus + +From: Kan Liang + +commit 5fa695e7da4975e8d21ce49f3718d6cf00ecb75e upstream. + +perf top errors out on a hybrid machine + $perf top + + Error: + The cycles:P event is not supported. + +The perf top expects that the "cycles" is collected on all CPUs in the +system. But for hybrid there is no single "cycles" event which can cover +all CPUs. Perf has to split it into two cycles events, e.g., +cpu_core/cycles/ and cpu_atom/cycles/. Each event has its own CPU mask. +If a event is opened on the unsupported CPU. The open fails. That's the +reason of the above error out. + +Perf should only open the cycles event on the corresponding CPU. The +commit ef91871c960e ("perf evlist: Propagate user CPU maps intersecting +core PMU maps") intersect the requested CPU map with the CPU map of the +PMU. Use the evsel's cpus to replace user_requested_cpus. + +The evlist's threads are also propagated to the evsel's threads in +__perf_evlist__propagate_maps(). For a system-wide event, perf appends +a dummy event and assign it to the evsel's threads. For a per-thread +event, the evlist's thread_map is assigned to the evsel's threads. The +same as the other tools, e.g., perf record, using the evsel's threads +when opening an event. + +Reported-by: Arnaldo Carvalho de Melo +Reviewed-by: Ian Rogers +Signed-off-by: Kan Liang +Tested-by: Arnaldo Carvalho de Melo +Cc: Hector Martin +Cc: Marc Zyngier +Cc: Mark Rutland +Cc: Namhyung Kim +Closes: https://lore.kernel.org/linux-perf-users/ZXNnDrGKXbEELMXV@kernel.org/ +Link: https://lore.kernel.org/r/20231214144612.1092028-1-kan.liang@linux.intel.com +Signed-off-by: Arnaldo Carvalho de Melo +Signed-off-by: Greg Kroah-Hartman +--- + tools/perf/builtin-top.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/tools/perf/builtin-top.c ++++ b/tools/perf/builtin-top.c +@@ -1027,8 +1027,8 @@ static int perf_top__start_counters(stru + + evlist__for_each_entry(evlist, counter) { + try_again: +- if (evsel__open(counter, top->evlist->core.user_requested_cpus, +- top->evlist->core.threads) < 0) { ++ if (evsel__open(counter, counter->core.cpus, ++ counter->core.threads) < 0) { + + /* + * Specially handle overwrite fall back. diff --git a/queue-6.6/series b/queue-6.6/series index 36b6f21b377..1b2aae3861d 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -304,3 +304,4 @@ efi-fix-panic-in-kdump-kernel.patch pwm-img-fix-pwm-clock-lookup.patch selftests-mm-gup_test-conform-test-to-tap-format-out.patch selftests-mm-fix-build-with-_fortify_source.patch +perf-top-use-evsel-s-cpus-to-replace-user_requested_cpus.patch