From: Namhyung Kim Date: Sat, 16 Aug 2025 03:16:28 +0000 (-0700) Subject: perf annotate: Simplify width calculation in annotation_line__write() X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=7736a6fba05837d178caa3c0ced55da77377a7e6;p=users%2Fhch%2Fmisc.git perf annotate: Simplify width calculation in annotation_line__write() The width is updated after each part is printed. It can skip the output processing if the total printed size is bigger than the width. No function changes intended. Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: Ian Rogers Cc: Ingo Molnar Cc: Jiri Olsa Cc: Kan Liang Cc: Peter Zijlstra Link: https://lore.kernel.org/r/20250816031635.25318-6-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 2544d83a52a0..6389292ad8f9 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -1993,6 +1993,7 @@ void annotation_line__write(struct annotation_line *al, struct annotation *notes symbol_conf.show_nr_samples ? "Samples" : "Percent"); } } + width -= pcnt_width; if (notes->branch) { if (al->cycles && al->cycles->ipc) @@ -2056,11 +2057,13 @@ void annotation_line__write(struct annotation_line *al, struct annotation *notes obj__printf(obj, "%*s", ANNOTATION__AVG_IPC_WIDTH, bf); } } + width -= cycles_width; obj__printf(obj, " "); + width -= 1; if (!*al->line) - obj__printf(obj, "%-*s", width - pcnt_width - cycles_width, " "); + obj__printf(obj, "%-*s", width, " "); else if (al->offset == -1) { if (al->line_nr && annotate_opts.show_linenr) printed = scnprintf(bf, sizeof(bf), "%-*d ", @@ -2069,7 +2072,8 @@ void annotation_line__write(struct annotation_line *al, struct annotation *notes printed = scnprintf(bf, sizeof(bf), "%-*s ", notes->src->widths.addr, " "); obj__printf(obj, bf); - obj__printf(obj, "%-*s", width - printed - pcnt_width - cycles_width + 1, al->line); + width -= printed; + obj__printf(obj, "%-*s", width, al->line); } else { u64 addr = al->offset; int color = -1; @@ -2112,9 +2116,11 @@ print_addr: if (change_color) obj__set_color(obj, color); + width -= printed; + disasm_line__write(disasm_line(al), notes, obj, bf, sizeof(bf), obj__printf, obj__write_graph); - obj__printf(obj, "%-*s", width - pcnt_width - cycles_width - 3 - printed, bf); + obj__printf(obj, "%-*s", width, bf); (void)apd; }