Messages in this thread | | | From | David Howells <> | Subject | Re: [PATCH] NFS: Fix RCU warnings in nfs_inode_return_delegation_noreclaim() [ver #2] | Date | Tue, 06 Apr 2010 17:14:03 +0100 |
| |
Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> > > So you have objected to needless memory barriers. How do you feel > > > about possibly needless ACCESS_ONCE() calls? > > > > That would work here since it shouldn't emit any excess instructions. > > And here is the corresponding patch. Seem reasonable?
Actually, now I've thought about it some more. No, it's not reasonable. You've written:
This patch adds a variant of rcu_dereference() that handles situations where the RCU-protected data structure cannot change, perhaps due to our holding the update-side lock, or where the RCU-protected pointer is only to be tested, not dereferenced.
But if we hold the update-side lock, then why should we be forced to use ACCESS_ONCE()?
In fact, if we don't hold the lock, but we want to test the pointer twice in succession, why should we be required to use ACCESS_LOCK()?
David
| |