On Thu, Sep 04, 2025 at 11:37:35AM +0800, Menglong Dong wrote: > > Yeah, I understand what you mean. I noticed this, and that's why > I added the rcu_read_lock() for rhashtable_lookup() only. > > Maybe it is to obtain better performance? Just guess ;) > And hlist_for_each_entry_rcu() also uses rcu_dereference_raw().
I did some digging and this appears to be the source of the rcu_dereference_raw call: commit 3120438ad68601f341e61e7cb1323b0e1a6ca367 Author: Paul E. McKenney <paul...@kernel.org> Date: Mon Feb 22 17:04:48 2010 -0800 rcu: Disable lockdep checking in RCU list-traversal primitives The theory is that use of bare rcu_dereference() is more prone to error than use of the RCU list-traversal primitives. Therefore, disable lockdep RCU read-side critical-section checking in these primitives for the time being. Once all of the rcu_dereference() uses have been dealt with, it may be time to re-enable lockdep checking for the RCU list-traversal primitives. So I don't think there is a good reason to use rcu_dereference_raw here at all. Cheers, -- Email: Herbert Xu <herb...@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt