Re: [PATCH 2/3] perf tools: Open perf.data with O_CLOEXEC flag

From: Arnaldo Carvalho de Melo
Date: Fri Sep 08 2017 - 14:11:59 EST


Em Fri, Sep 08, 2017 at 10:46:20AM +0200, Jiri Olsa escreveu:
> Do not carry the perf.data file descriptor into
> the workload process and close it when perf
> executes the workload.

Fails in some systems with:

util/data.c: In function 'open_file_write':
util/data.c:99: error: 'O_CLOEXEC' undeclared (first use in this function)
util/data.c:99: error: (Each undeclared identifier is reported only once
util/data.c:99: error: for each function it appears in.)
mv: cannot stat `/tmp/build/perf/util/.data.o.tmp': No such file or directory

just FYI, I'll get this fixed.

Thanks,

- Arnaldo

> Link: http://lkml.kernel.org/n/tip-j7qdp4ucreain1cqvy485wd4@xxxxxxxxxxxxxx
> Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
> ---
> tools/perf/util/data.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c
> index e84bbc8ec058..6b9d3ec2c276 100644
> --- a/tools/perf/util/data.c
> +++ b/tools/perf/util/data.c
> @@ -96,7 +96,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,
> --
> 2.9.5