On Mon, Sep 08, 2014 at 11:48:55AM +0200, Peter Zijlstra wrote: > > The thing is; I don't understand those reasons. That commit log doesn't > > explain. > > Ah wait, I finally see. I think we want to fix that exit path, not > disallow the cloning. > > The thing is, by not allowing this optimization simple things like eg. > pipe-test say very expensive. So its 179033b3e064 ("perf: Add PERF_EVENT_STATE_EXIT state for events with exited task") that introduces the problem. Before that things would work correctly afaict. The exit would remove from the context but leave the event in existence. Both the fd and the inherited events would have references to it, only once those are gone do we destroy the actual event.