Em Mon, Mar 11, 2019 at 01:24:42PM -0700, Andi Kleen escreveu:
> From: Andi Kleen <a...@linux.intel.com>
> 
> The message about missing /tmp/perf-* for JITed code is quite confusing
> to users. Add a better error message, but only print it once.
> 
> Signed-off-by: Andi Kleen <a...@linux.intel.com>
> ---
>  tools/perf/util/map.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
> index fbeb0c6efaa6..d476b76abc6a 100644
> --- a/tools/perf/util/map.c
> +++ b/tools/perf/util/map.c
> @@ -316,6 +316,15 @@ int map__load(struct map *map)
>  
>       nr = dso__load(map->dso, map);
>       if (nr < 0) {
> +             if (!strncmp(map->dso->name, "/tmp/perf-", 10)) {
> +                     static bool warned;
> +                     if (!warned) {
> +                             pr_err("Cannot find executable, JITed code 
> present? May need agent.\n");
> +                             warned = true;
> +                     }

Please use WARN_ON_ONCE(), we have it in tools/include/asm/bug.h, just
like the kernel.

> +                     return -1;
> +             }
> +
>               if (map->dso->has_build_id) {
>                       char sbuild_id[SBUILD_ID_SIZE];
>  
> -- 
> 2.20.1

-- 

- Arnaldo

Reply via email to