| Date | Tue, 23 Feb 2010 05:28:15 -0800 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH tip/core/rcu 0/21] v6 add lockdep-based diagnostics to rcu_dereference() |
| |
On Tue, Feb 23, 2010 at 01:59:07PM +0100, Arnd Bergmann wrote: > On Tuesday 23 February 2010, Paul E. McKenney wrote: > > This patch series adds lockdep-based checking to the rcu_dereference() > > primitive in order to flag misuses of RCU. > > While I haven't looked much at this series, I've been thinking about > adding static diagnostics for rcu_dereference misuse, in the form of > an __rcu address space qualifier for pointers. Such a patch would > obviously conflict with this series, so I'd wait for yours to go > in first, but maybe you like the idea enough to do it yourself ;-). > > The observation is that all accesses to an RCU protected pointer > are either through rcu_dereference, rcu_assign_pointer or one of their > variants. so it should be possible to add a new address space like we > have for __iomem, __user and soon __percpu and have sparse check that > we use RCU consistently on pointers that need it.
That is orthogonal to the current series, but sounds like a very good idea, give or take how to handle initialization accesses and the like.
Your approach would verify that a given RCU-protected pointer is consistently handled by rcu_dereference() and presumably also rcu_assign_pointer(). This patch series instead verifies that a given rcu_dereference() is protected by the proper flavor of RCU or the correct lock or whatever else.
Thanx, Paul
|