lkml.org 
[lkml]   [2010]   [Mar]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch 0/6] rcu head debugobjects
On Mon, Mar 29, 2010 at 11:04:25AM -0400, Mathieu Desnoyers wrote:
> * Paul E. McKenney (paulmck@linux.vnet.ibm.com) wrote:
> > On Mon, Mar 29, 2010 at 09:39:33AM -0400, Mathieu Desnoyers wrote:
> > > Hi Paul,
> > >
> > > Thinking about the rcu head init topic, we might be able to drop the
> > > init_rcu_head() initializer. The idea is the following:
> > >
> > > - We need init_rcu_head_on_stack()/destroy_rcu_head_on_stack().
> > > - call_rcu() populates the rcu_head and normally does not care about it being
> > > pre-initialized.
> > > - The activation fixup can detect if a non-initialized rcu head is being
> > > activated and just perform the fixup without complaining.
> > > - If we have two call_rcu() in a row in the same GP on the same rcu_head, the
> > > activation check will detect it.
> > >
> > > So either we remove all the init_rcu_head(), as was originally proposed, or we
> > > use one that is a no-op on !DEBUG configs and initialize the object with DEBUG
> > > configs.
> > >
> > > That removes the dependency on object_is_static().
> >
> > If I understand correctly, this does sound good. Here is what I think
> > you are proposing:
> >
> > o call_rcu() and friends only complain if handed an rcu_head
> > structure that is still queued awaiting a grace period.
> > They don't care otherwise.
> >
> > o rcu_do_batch() complains unless the rcu_head structure has
> > most recently been enqueued by call_rcu() or one if its friends.
> >
> > Did I get it right?
>
> Exactly.

Very good!!!

Thanx, Paul


\
 
 \ /
  Last update: 2010-03-29 18:03    [W:0.044 / U:0.288 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site