Messages in this thread | | | Date | Mon, 8 Sep 2014 14:32:00 +0200 | From | Jiri Olsa <> | Subject | Re: [PATCH 1/9] perf: Remove redundant parent context check from context_equiv |
| |
On Mon, Sep 08, 2014 at 01:39:58PM +0200, Peter Zijlstra wrote: > On Mon, Sep 08, 2014 at 12:01:22PM +0200, Peter Zijlstra wrote: > > 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. > > I have another 'problem' with 179033b3e064. What if you 'want' to > continue monitoring after the initial task died? Eg. if you want to > monitor crap that unconditionally daemonizes. > > So at this point I would suggest we revert both 179033b3e064 and > 1f9a7268c67f so that the context switch optimization works again for > simple 2 task things (pipe-test). > > If we re-introduce 179033b3e064 (which I think makes sense) we need to > make sure it works with the context switch optimization (we could add > perf_event::task I think, it would clean up a few other things iirc) and > we'd have to make it conditional so we can still monitor daemons. > > Or am I totally missing things again?
as I said in previous email I dont think the 179033b3e064 introduced the issue and I think we should keep 1f9a7268c67f to have correct numbers ;-)
I'll think about the fix to keep non-cloned context in optimized switch
jirka
| |