Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -10,6 +10,16 @@
#include "util.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)
{
	struct stat st;
@@ -96,7 +106,8 @@ static int open_file_write(struct perf_data_file *file)
	if (check_backup(file))
		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)
		pr_err("failed to open %s : %s\n", file->path,