Re: [PATCH 2/5] perf: Destroy event's children on task exit

From: Peter Zijlstra
Date: Mon Jul 14 2014 - 09:03:09 EST


On Mon, Jul 14, 2014 at 01:43:59PM +0200, Jiri Olsa wrote:
> On Mon, Jul 14, 2014 at 01:18:33PM +0200, Peter Zijlstra wrote:
> > On Fri, Jul 11, 2014 at 01:56:19PM +0200, Jiri Olsa wrote:
> > > From: Jiri Olsa <jolsa@xxxxxxxxxx>
> > >
> > > When task exits we close:
> > > 1) all events that are installed in task
> > > 2) all events owned by task (via file descriptor)
> > >
> > > But we don't close children events of 2) events. Those children
> > > events stay until the child task exits and are useless with the
> > > parent being gone, because we have no way to get to values any
> > > more.
> > >
> > > Plus if the event stays installed in task even with the owner task
> > > gone, it runs the perf callback any time the task forks, for no
> > > real reason.
> > >
> > > Closing all children events events when the owner task of the
> > > parent event is closed.
> >
> > Do we need this for the other patches, or is this an unrelated change?
>
> if we dont do it, the event stays installed without owner and
> perf fork callback will be called and fail on permission checking
> (because of owner == NULL) ... so yes, I think it's needed

Oh, right. Alternatively, we don't need permission checking for inherits
at all, if we're allowed to create the initial event, we should be good
for inherits.

And I suppose install_exec_creds() already does the right thing when we
may not.

Attachment: pgpmJ3zA_jPjS.pgp
Description: PGP signature