Re: [PATCH 2/2 v2] perf annotate: Fix missing branch counter column in TUI mode

From: Mi, Dapeng

Date: Wed Apr 29 2026 - 20:39:05 EST



On 4/29/2026 11:29 PM, Thomas Falcon wrote:
> perf annotate checks that evlist->nr_br_cntr has been incremented
> to determine whether to show branch counter information. However,
> this data is not populated until after the check when events are
> processed. Therefore, this counter will always be less than zero
> and the Branch Count column is never shown. Do this check after
> events have been processed and branch counter data is updated.
>
> Signed-off-by: Thomas Falcon <thomas.falcon@xxxxxxxxx>
> ---
> tools/perf/builtin-annotate.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
> index 5e57b78548f4..7bddbaee1cde 100644
> --- a/tools/perf/builtin-annotate.c
> +++ b/tools/perf/builtin-annotate.c
> @@ -563,6 +563,10 @@ static int __cmd_annotate(struct perf_annotate *ann)
> if (ret)
> goto out;
>
> + if ((use_browser == 1 || ann->use_stdio2) && ann->has_br_stack)
> + if (session->evlist->nr_br_cntr > 0)
> + annotate_opts.show_br_cntr = true;
> +
> if (dump_trace) {
> perf_session__fprintf_nr_events(session, stdout);
> evlist__fprintf_nr_events(session->evlist, stdout);
> @@ -926,11 +930,8 @@ int cmd_annotate(int argc, const char **argv)
> * branch counters, if the corresponding branch info is available
> * in the perf data in the TUI mode.
> */
> - if ((use_browser == 1 || annotate.use_stdio2) && annotate.has_br_stack) {
> + if ((use_browser == 1 || annotate.use_stdio2) && annotate.has_br_stack)
> sort__mode = SORT_MODE__BRANCH;
> - if (annotate.session->evlist->nr_br_cntr > 0)
> - annotate_opts.show_br_cntr = true;
> - }
>
> if (setup_sorting(/*evlist=*/NULL, perf_session__env(annotate.session)) < 0)
> usage_with_options(annotate_usage, options);

LGTM.

Reviewed-by: Dapeng Mi <dapeng1.mi@xxxxxxxxxxxxxxx>