perf evsel: Move test_attr__open() to success path in evsel__open_cpu()
authorRiccardo Mancini <rickyman7@gmail.com>
Sat, 21 Aug 2021 09:19:28 +0000 (11:19 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 31 Aug 2021 19:45:30 +0000 (16:45 -0300)
test_attr__open() ignores the fd if -1, therefore it is safe to move it to
the success path (fd >= 0).

Signed-off-by: Riccardo Mancini <rickyman7@gmail.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/b3baf11360ca96541c9631730614fd7d217496fc.1629490974.git.rickyman7@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/evsel.c

index f691f9e..8dc70dd 100644 (file)
@@ -2011,11 +2011,6 @@ retry_open:
 
                        bpf_counter__install_pe(evsel, cpu, fd);
 
-                       if (unlikely(test_attr__enabled)) {
-                               test_attr__open(&evsel->core.attr, pid, cpus->map[cpu],
-                                               fd, group_fd, evsel->open_flags);
-                       }
-
                        if (fd < 0) {
                                err = -errno;
 
@@ -2024,6 +2019,11 @@ retry_open:
                                goto try_fallback;
                        }
 
+                       if (unlikely(test_attr__enabled)) {
+                               test_attr__open(&evsel->core.attr, pid, cpus->map[cpu],
+                                               fd, group_fd, evsel->open_flags);
+                       }
+
                        pr_debug2_peo(" = %d\n", fd);
 
                        if (evsel->bpf_fd >= 0) {