Commit cd6379eb authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo

perf tools: Open perf.data with O_CLOEXEC flag

Do not carry the perf.data file descriptor into the workload process and
close it when perf executes the workload.
Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20170908084621.31595-2-jolsa@kernel.org
[ Add definitions for O_CLOEXEC for older systems ]
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 58b79186
...@@ -10,6 +10,16 @@ ...@@ -10,6 +10,16 @@
#include "util.h" #include "util.h"
#include "debug.h" #include "debug.h"
#ifndef O_CLOEXEC
#ifdef __sparc__
#define O_CLOEXEC 0x400000
#elif defined(__alpha__) || defined(__hppa__)
#define O_CLOEXEC 010000000
#else
#define O_CLOEXEC 02000000
#endif
#endif
static bool check_pipe(struct perf_data_file *file) static bool check_pipe(struct perf_data_file *file)
{ {
struct stat st; struct stat st;
...@@ -96,7 +106,8 @@ static int open_file_write(struct perf_data_file *file) ...@@ -96,7 +106,8 @@ static int open_file_write(struct perf_data_file *file)
if (check_backup(file)) if (check_backup(file))
return -1; return -1;
fd = open(file->path, O_CREAT|O_RDWR|O_TRUNC, S_IRUSR|S_IWUSR); fd = open(file->path, O_CREAT|O_RDWR|O_TRUNC|O_CLOEXEC,
S_IRUSR|S_IWUSR);
if (fd < 0) if (fd < 0)
pr_err("failed to open %s : %s\n", file->path, pr_err("failed to open %s : %s\n", file->path,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment