]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
perf tools: Fix precise_ip fallback logic
authorNamhyung Kim <namhyung@kernel.org>
Thu, 5 Dec 2024 23:15:29 +0000 (15:15 -0800)
committerNamhyung Kim <namhyung@kernel.org>
Thu, 5 Dec 2024 23:15:29 +0000 (15:15 -0800)
Sometimes it returns other than EOPNOTSUPP for invalid precise_ip so
it cannot check the error code.  Let's move the fallback after the
missing feature checks so that it can handle EINVAL as well.  This also
aligns well with the existing behavior which blindly turns off the
precise_ip but we check the missing features correctly now.

Fixes: af954f76eea56453 ("perf tools: Check fallback error and order")
Reported-by: kernel test robot <oliver.sang@intel.com>
Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Closes: https://lore.kernel.org/oe-lkp/202411301431.799e5531-lkp@intel.com
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Link: https://lore.kernel.org/r/Z1DV0lN8qHSysX7f@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/evsel.c

index f745723d486ba962a621a04301323e254803f4e0..d22c5df1701eccc59b08ca2f3a59e929c65ef1f0 100644 (file)
@@ -2571,12 +2571,12 @@ try_fallback:
        if (err == -EMFILE && rlimit__increase_nofile(&set_rlimit))
                goto retry_open;
 
-       if (err == -EOPNOTSUPP && evsel__precise_ip_fallback(evsel))
-               goto retry_open;
-
        if (err == -EINVAL && evsel__detect_missing_features(evsel))
                goto fallback_missing_features;
 
+       if (evsel__precise_ip_fallback(evsel))
+               goto retry_open;
+
        if (evsel__handle_error_quirks(evsel, err))
                goto retry_open;