On Thu, Jan 11, 2007 at 01:27:55AM -0800, David Miller wrote: > From: Jarek Poplawski <[EMAIL PROTECTED]> > Date: Thu, 11 Jan 2007 09:39:34 +0100 > > > Sure, but is this even legal to be preempted during > > reading or modifying rcu list or be blocked while > > holding rcu protected pointer? Doesn't this disturb > > rcu cycle and make possible memory release problems? > > It's fine in this case. > > Since the list cannot be changed by anyone else, and the hash linked > list (as seen by readers) is modified atomically by a single store, it > all works out. > > Readers only look at foo->next in the hash traversal. Since the > preceeding element cannot change outside of the current writer, > the ->next pointer to update is protected. > > Readers therefore will either see the hash list with the entry or > without. > > We then use call_rcu() to make sure any reading threads that happened > to get a glimpse of the hash entry before the hlist_del_rcu() > completed will go away and drop their references before we free that > entry. > > I really don't see any problem here. :-)
Probably because you care more about internals and less about docs examples. It seems I'm too much about regulations. OK, I take your word and will try to stop annoy this list with imagined RCU bugs, sorry. Thanks for your precious (sleeping?) time and explanations. Best regards, Jarek P. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html