From 59eca524949b5e4b9f3e0691e041996508d37589 Mon Sep 17 00:00:00 2001 From: Ian Rogers Date: Wed, 16 Sep 2026 22:07:05 -0700 Subject: [PATCH] perf tools: Add TUI hints for --hybrid-merge Add dynamic TUI hints prompting users to restart with --hybrid-merge when heterogeneous core PMU events are populated in the sample view. Signed-off-by: Ian Rogers Assisted-by: Antigravity:gemini-3.1-pro Tested-by: Arnaldo Carvalho de Melo Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/Documentation/tips.txt | 1 + tools/perf/ui/browsers/hists.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/perf/Documentation/tips.txt b/tools/perf/Documentation/tips.txt index 1c7b309fe6e8..eb6d56d4d8ba 100644 --- a/tools/perf/Documentation/tips.txt +++ b/tools/perf/Documentation/tips.txt @@ -67,3 +67,4 @@ For parallelism histogram, try: perf report --hierarchy --sort latency,paralleli To analyze particular parallelism levels, try: perf report --latency --parallelism=32-64 To see how parallelism changes over time, try: perf report -F time,latency,parallelism --time-quantum=1s When merging events like cycles, different core frequencies and instructions per cycle mean the counts may not fairly reflect time spent in a function. +Use --hybrid-merge to merge matching events from hybrid cores into one view diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c index f62cb2d534ed..593e1fd5759d 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c @@ -3580,9 +3580,12 @@ static int perf_evsel_menu__run(struct evsel_menu *menu, const char *title = "Available samples"; int delay_secs = hbt ? hbt->refresh : 0; int key; + const char *help_text = "ESC: exit, ENTER|->: Browse histograms"; - if (ui_browser__show(&menu->b, title, - "ESC: exit, ENTER|->: Browse histograms") < 0) + if (!symbol_conf.hybrid_merge && evlist__can_merge_hybrid(evlist, menu->env)) + help_text = "ESC: exit, ENTER|->: Browse. Try --hybrid-merge to combine events."; + + if (ui_browser__show(&menu->b, title, help_text) < 0) return -1; while (1) {