Messages in this thread | | | Date | Wed, 9 Oct 2013 16:40:40 -0700 | From | Josh Triplett <> | Subject | Re: [PATCH v2 tip/core/rcu 07/13] ipv6/ip6_tunnel: Apply rcu_access_pointer() to avoid sparse false positive |
| |
On Wed, Oct 09, 2013 at 04:17:55PM -0700, Eric Dumazet wrote: > On Wed, 2013-10-09 at 15:56 -0700, Josh Triplett wrote: > > > I'd be really hesitant to introduce that type of direct assignment to an > > __rcu pointer without wrapping it in some appropriately named macro, or > > at the very least adding a comment. > > Well, there is no special magic here, in this specific case : > > - deleting an item in an rcu list > > Check list_del_rcu(), and you'll notice there is no _barrier_ > > Adding correct barriers is good, but please do not add them when not > needed. > > It makes code hard to understand.
I'm not arguing for the inclusion of an unnecessary barrier. I'm arguing for something more self-documenting than:
> ACCESS(*ptr) = value;
that. Constructs like list_del_rcu are much clearer, and not open-coded. Open-coding synchronization code is almost always a Bad Idea.
- Josh Triplett
| |