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

From: Eric Dumazet
Date: Mon Mar 29 2010 - 16:26:51 EST


Le lundi 29 mars 2010 Ã 21:15 +0100, David Howells a Ãcrit :
> My objection to using rcu_dereference_check() here is that it's a dynamic
> 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.
>

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

ptr = 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 = rcu_dereference_raw(xxx->ptr);



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/