Messages in this thread | | | Subject | Re: [PATCH RFC -tip 0/4] v3 RCU cleanups and simplified preemptable RCU | From | Peter Zijlstra <> | Date | Mon, 24 Aug 2009 09:21:59 +0200 |
| |
On Sat, 2009-08-22 at 13:52 -0700, Paul E. McKenney wrote: > > o Rename variables and functions so that RCU-sched is an > underlying definition, along with RCU-bh and (when so > configured) RCU-preempt. RCU then maps to either RCU-sched > or RCU-preempt, depending on configuration.
Nice, but we're not quite there yet it seems, since RCU-preempt isn't available outside of TREE_PREEMPT_RCU afaiks.
That is, I'm still hoping for the day that generic code can do:
rcu_preempt_read_lock();
call_rcu_preempt(&my_rcu_thing); rcu_preempt_read_unlock();
And have it work like expected, this would, I think, remove much of the need for SRCU.
The thing I've talked about earlier is an extension of this where you can create multiple RCU domains along the lines of:
struct rcu_preempt_domain my_domain;
rcu_preempt_init(&my_domain);
and
rcu_preempt_read_lock(&my_domain);
call_rcu_preempt(&my_domain, &my_rcu_head); rcu_preempt_read_unlock(&my_domain);
Which would allow you to create smaller RCU domains for when you want faster grace periods due to less interference of other rcu users.
Anyway, enough rambling, the patch-set does look very nice, and if time permits I'll try and go through the preempt-tree-rcu thing.
Thanks
| |