Re: [PATCH 4/4] perf-probe: Warn if the target function is GNU Indirect function

From: Masami Hiramatsu
Date: Thu Jul 09 2020 - 23:30:14 EST


On Thu, 9 Jul 2020 07:36:54 -0700
Andi Kleen <andi@xxxxxxxxxxxxxx> wrote:

> > diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> > index 1e95a336862c..671176d39569 100644
> > --- a/tools/perf/util/probe-event.c
> > +++ b/tools/perf/util/probe-event.c
> > @@ -379,6 +379,11 @@ static int find_alternative_probe_point(struct debuginfo *dinfo,
> > address = sym->start;
> > else
> > address = map->unmap_ip(map, sym->start) - map->reloc;
> > + if (sym->type == STT_GNU_IFUNC) {
> > + pr_warning("Warning: The probe address (0x%lx) is in a GNU indirect function.\n"
> > + "This may not work as you expected unless you intend to probe the indirect function.\n",
>
> I would say something like this.
>
> Consider identifying the final function used at run time and set the
> probe directly on that.
>
> I think that's more useful to the user.

Hmm, would you mean the default function which may be used for the symbol?
Let me check how we can find it.

Thank you,

--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>