Re: [PATCH] events: add a flag to perf_event_open() to set O_CLOEXEC

From: Peter Zijlstra
Date: Thu Oct 31 2013 - 14:12:17 EST

On Wed, Oct 30, 2013 at 10:35:50PM +0100, Yann Droneaud wrote:
> This patch adds PERF_FLAG_FD_CLOEXEC flag for
> perf_event_open() syscall.
> perf_event_open() creates a new file descriptor,
> but unlike open() syscall, it lack a flag to atomicaly
> set close-on-exec (O_CLOEXEC).
> Not using O_CLOEXEC by default and not letting userspace
> provide the "open" flags should be avoided: in most case
> O_CLOEXEC must be used to not leak file descriptor across
> exec().
> Using O_CLOEXEC when creating a file descriptor allows
> userspace to set latter, using fcntl(), without any risk
> of race, if the file descriptor is going to be inherited
> or not across exec().
> Link:
> Link:
> Signed-off-by: Yann Droneaud <ydroneaud@xxxxxxxxxx>
> ---
> Hi Peter,
> This patch should replaces
> "[PATCH v4 6/7] events: use get_unused_fd_flags(0) instead of get_unused_fd()"
> Please have a look.

I'm still terminally confused as to all of this... Why does it matter
what the default is if you can change it with fcntl() ? Also, how can
you tell nobody relies on the current behaviour and its therefore safe
to change?

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at