On Thu, Aug 07, 2014 at 05:26:00PM +0200, Peter Zijlstra wrote: > > > So do we really need the call_rcu_task() thing and why isn't something > > > like synchronize_tasks() good enough? > > > > Sounds like a question for Steven. > > > > > So the thing is, the one proposed user is very rare (*) and for that > > > you're adding overhead outside of that user (a separate kthread) and > > > your adding overhead when its not used. > > > > If that really was the case, that would be bad. However, in the latest > > versions, that is no longer the case. > > > > > * I'm assuming that, since tracing is 'rare' and this is some tracing > > > thing. > > > > Another good point for Steven. > > Yes.. and he's back now, so please :-)
Right, Steve (and Paul) please explain _why_ this is an 'RCU' at all? _Why_ do we have call_rcu_task(), and why is it entwined in the 'normal' RCU stuff? We've got SRCU -- which btw started out simple, without call_srcu() -- and that lives entirely independent. And SRCU is far more an actual RCU than this thing is, its got read side primitives and everything. Also, I cannot think of any other use besides trampolines for this thing, but that might be my limited imagination.
pgpukNf5PB5td.pgp
Description: PGP signature