Re: [PATCH] NFS: Fix RCU warnings in nfs_inode_return_delegation_noreclaim() [ver #2]

Eric Dumazet
2010-03-29T20:26:46Z

Le lundi 29 mars 2010 =C3=A0 21:15 +0100, David Howells a =C3=A9crit :
> My objection to using rcu_dereference_check() here is that it's a dyn=
amic
> check: the compiler emits code to do it, since the lock/unlock status=
of what
> the pointer points to cannot be determined easily at compiler time - =
and then
> the barrier is interpolated anyway unnecessarily.
>=20

Then in this case, use either a condition ORing all possibilities,
or just use rcu_dereference_raw() because its just too complex ?

ptr =3D rcu_dereference_check(xxx->ptr,
rcu_read_lock_held() ||
lockdep_is_held(&some_global_lock) ||
lockdep_is_held(&xxx->lock));

OR

/* This is too complex to check what protects us at this point */
ptr =3D rcu_dereference_raw(xxx->ptr);