Re: [PATCH 1/1] perf top/report TUI: Provide visual cue when starting annotation

From: Namhyung Kim
Date: Fri Jun 06 2025 - 13:23:49 EST


On Fri, Jun 06, 2025 at 12:02:01PM -0300, Arnaldo Carvalho de Melo wrote:
> On Thu, Jun 05, 2025 at 08:14:10PM -0700, Namhyung Kim wrote:
> > On Thu, Jun 05, 2025 at 06:16:20PM -0300, Arnaldo Carvalho de Melo wrote:
> > > Sometimes it takes a while for the annotation to be presented after
> > > pressing 'a' in the 'perf top'/'report' TUI, provide a visual cue
> > > informing that the annotation has started for that symbol.
>
> > It's probably because objdump takes long to process DWARF. I think I
> > need to update this.
>
> > https://lore.kernel.org/linux-perf-users/Z_gunJ9C3H25Uo9Q@xxxxxxxxxx/
>
> Humm, in this case I had explicitely asked for using objdump:
>
> root@number:~# cat ~/.perfconfig
> # this file is auto-generated.
> [annotate]
> disassemblers = objdump
> root@number:~#
>
> So, yeah, its objdump running but in my case there was no DWARF
> involved, it was just a big C++ app, so the ELF files were big and
> objdump takes a long time even without DWARF.

Oh, ok. I had a problem with DWARF in the past, so assumed the same.

>
> One way or the other, your patch switching to use objdump when 's' is
> pressed is a good one, please update it :-)

Sure, will do it soon.

Thanks,
Namhyung

> >
> > >
> > > This is the quick and most of the time improvement, but for some cases
> > > its better to improve on it by having a cancellable progress bar, which
> > > is now in my TODO list.
> > >
> > > Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
> > > Cc: Ian Rogers <irogers@xxxxxxxxxx>
> > > Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> > > Cc: James Clark <james.clark@xxxxxxxxxx>
> > > Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> > > Cc: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>
> > > Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> > > Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> > > ---
> > > tools/perf/ui/browsers/annotate.c | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/tools/perf/ui/browsers/annotate.c b/tools/perf/ui/browsers/annotate.c
> > > index cd1d452035a265d3..66ffeb96db29532c 100644
> > > --- a/tools/perf/ui/browsers/annotate.c
> > > +++ b/tools/perf/ui/browsers/annotate.c
> > > @@ -2,6 +2,7 @@
> > > #include "../browser.h"
> > > #include "../helpline.h"
> > > #include "../ui.h"
> > > +#include "../util.h"
> > > #include "../../util/annotate.h"
> > > #include "../../util/debug.h"
> > > #include "../../util/debuginfo.h"
> > > @@ -1016,6 +1017,7 @@ int __hist_entry__tui_annotate(struct hist_entry *he, struct map_symbol *ms,
> > > return -1;
> > >
> > > if (not_annotated || !sym->annotate2) {
> > > + ui__info_window("Annotating", sym->name);
> > > err = symbol__annotate2(ms, evsel, &browser.arch);
> > > if (err) {
> > > char msg[BUFSIZ];
> > > --
> > > 2.49.0
> > >