perf evsel: Move bpf_counter__install_pe() to success path in evsel__open_cpu()
authorRiccardo Mancini <rickyman7@gmail.com>
Sat, 21 Aug 2021 09:19:29 +0000 (11:19 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 31 Aug 2021 19:50:34 +0000 (16:50 -0300)
I don't see why bpf_counter__install_pe() should get called even if
fd = -1, so I'm moving it to the success path.

This will be useful in following patches to separate the actual open and
the related operations from the fallback mechanisms.

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>
Cc: Song Liu <songliubraving@fb.com>
Link: http://lore.kernel.org/lkml/64f8a1b0a838a6e6049cd43c1beafd432999ae57.1629490974.git.rickyman7@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/evsel.c

index 8dc70dd..a576d98 100644 (file)
@@ -2009,8 +2009,6 @@ retry_open:
 
                        FD(evsel, cpu, thread) = fd;
 
-                       bpf_counter__install_pe(evsel, cpu, fd);
-
                        if (fd < 0) {
                                err = -errno;
 
@@ -2019,6 +2017,8 @@ retry_open:
                                goto try_fallback;
                        }
 
+                       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);