Re: [PATCH] perf annotate: Skip DSOs not found

From: Ian Rogers
Date: Wed Apr 10 2024 - 15:15:02 EST


On Wed, Apr 10, 2024 at 11:51 AM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> In some data file, I see the following messages repeated. It seems it
> doesn't have DSOs in the system and the dso->binary_type is set to
> DSO_BINARY_TYPE__NOT_FOUND. Let's skip them to avoid the followings.
>
> No output from objdump --start-address=0x0000000000000000 --stop-address=0x00000000000000d4 -d --no-show-raw-insn -C "$1"
> Error running objdump --start-address=0x0000000000000000 --stop-address=0x0000000000000631 -d --no-show-raw-insn -C "$1"
> ...
>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>

Perhaps: Closes:
https://lore.kernel.org/linux-perf-users/15e1a2847b8cebab4de57fc68e033086aa6980ce.camel@xxxxxxxxx/

Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>

Thanks,
Ian


> ---
> tools/perf/util/disasm.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c
> index a1219eb930aa..92937809be85 100644
> --- a/tools/perf/util/disasm.c
> +++ b/tools/perf/util/disasm.c
> @@ -1669,6 +1669,8 @@ int symbol__disassemble(struct symbol *sym, struct annotate_args *args)
> return symbol__disassemble_bpf(sym, args);
> } else if (dso->binary_type == DSO_BINARY_TYPE__BPF_IMAGE) {
> return symbol__disassemble_bpf_image(sym, args);
> + } else if (dso->binary_type == DSO_BINARY_TYPE__NOT_FOUND) {
> + return -1;
> } else if (dso__is_kcore(dso)) {
> kce.kcore_filename = symfs_filename;
> kce.addr = map__rip_2objdump(map, sym->start);
> --
> 2.44.0.478.gd926399ef9-goog
>