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

From: Andi Kleen
Date: Thu Jul 09 2020 - 10:45:31 EST


> 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.

-Andi