aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/perf/util/cloexec.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/tools/perf/util/cloexec.c b/tools/perf/util/cloexec.c
index c5d05ec17220..6a37be53a5d2 100644
--- a/tools/perf/util/cloexec.c
+++ b/tools/perf/util/cloexec.c
@@ -1,3 +1,4 @@
1#include <sched.h>
1#include "util.h" 2#include "util.h"
2#include "../perf.h" 3#include "../perf.h"
3#include "cloexec.h" 4#include "cloexec.h"
@@ -14,9 +15,13 @@ static int perf_flag_probe(void)
14 }; 15 };
15 int fd; 16 int fd;
16 int err; 17 int err;
18 int cpu = sched_getcpu();
19
20 if (cpu < 0)
21 cpu = 0;
17 22
18 /* check cloexec flag */ 23 /* check cloexec flag */
19 fd = sys_perf_event_open(&attr, 0, -1, -1, 24 fd = sys_perf_event_open(&attr, -1, cpu, -1,
20 PERF_FLAG_FD_CLOEXEC); 25 PERF_FLAG_FD_CLOEXEC);
21 err = errno; 26 err = errno;
22 27
@@ -30,7 +35,7 @@ static int perf_flag_probe(void)
30 err, strerror(err)); 35 err, strerror(err));
31 36
32 /* not supported, confirm error related to PERF_FLAG_FD_CLOEXEC */ 37 /* not supported, confirm error related to PERF_FLAG_FD_CLOEXEC */
33 fd = sys_perf_event_open(&attr, 0, -1, -1, 0); 38 fd = sys_perf_event_open(&attr, -1, cpu, -1, 0);
34 err = errno; 39 err = errno;
35 40
36 if (WARN_ONCE(fd < 0, 41 if (WARN_ONCE(fd < 0,