Re: [PATCH 0/2] perf: Allow closing siblings' file descriptors

From: Alexey Budankov
Date: Thu Jul 09 2020 - 04:30:41 EST


Hi Alex,

On 08.07.2020 18:16, Alexander Shishkin wrote:
> Hi guys,
>
> I've been looking at reducing the number of open file descriptors per perf
> session. If we retain one descriptor per event, in a large group they add
> up. At the same time, we're not actually using them for anything after the
> SET_OUTPUT and maybe SET_FILTER ioctls. So, this series is a stab at that.

PERF_EVENT_IOC_ENABLE, PERF_EVENT_IOC_DISABLE ioctls are still assumed to
work, right?

Asking w.r.t. functionality on --control fd:ctl_fd[,ack_fd] option for stat
and record modes [1].

Thanks,
Alexey

[1] https://lore.kernel.org/lkml/4af50c95-36f6-7a61-5a22-2949970fe7a5@xxxxxxxxxxxxxxx/

>
> So, I added a new flag to the perf_event_open() that tells perf to keep
> the event around after its file descriptor gets closed, for as long as its
> group leader is alive. Since this is a new behavior, the flag is an opt-in.
>
> I also hacked this into the perf tool (mostly perf record, but I'll hack
> stat as well if this general approach is agreeable).
>
> Alexander Shishkin (2):
> perf: Add closing sibling events' file descriptors
> perf record: Support closing siblings' file descriptors
>
> include/linux/perf_event.h | 7 ++
> include/uapi/linux/perf_event.h | 1 +
> kernel/events/core.c | 149 +++++++++++++++++-------
> tools/include/uapi/linux/perf_event.h | 1 +
> tools/lib/perf/evlist.c | 30 ++++-
> tools/lib/perf/evsel.c | 21 ++++
> tools/lib/perf/include/internal/evsel.h | 4 +
> tools/perf/builtin-record.c | 48 ++++++--
> tools/perf/util/cpumap.c | 4 +
> tools/perf/util/evlist.c | 4 +-
> tools/perf/util/evsel.c | 17 ++-
> tools/perf/util/evsel.h | 3 +
> 12 files changed, 234 insertions(+), 55 deletions(-)
>