Thread (6 messages) flat view 6 messages, 3 authors, 2014-11-22

Re: [PATCH v2 9/9] netfilter: Replace smp_read_barrier_depends() with lockless_dereference()

From: Pranith Kumar <hidden>
Date: 2014-11-22 01:23:44
Also in: lkml, netfilter-devel

On Fri, Nov 21, 2014 at 7:05 PM, Eric Dumazet [off-list ref] wrote:
On Fri, 2014-11-21 at 16:57 -0500, Pranith Kumar wrote:
quoted
Hi Eric,

Thanks for looking at this patch.

I've been scratching my head since morning trying to find out what was
so obviously wrong with this patch. Alas, I don't see what you do.

Could you point it out and show me how incompetent I am, please?

Thanks!
Well, even it the code is _not_ broken, I don't see any value with this
patch.
Phew. Not being broken itself is a win :)
If I use git blame on current code, line containing
smp_read_barrier_depends() exactly points to the relevant commit [1]
And that is an opinion I will respect. I don't want to muck the git
history where it is significant.

This effort is to eventually replace the uses of
smp_read_barrier_depends() and to use either rcu or
lockless_dereference() as documented in memory-barriers.txt.
After your change, it will point to some cleanup, which makes little
sense to me, considering you did not change the smp_wmb() in
xt_replace_table().
That does not need to change as it is fine as it is. It still pairs
with the smp_read_barrier_depends() in lockless_dereference().
I, as a netfilter contributor would like to keep current code as is,
because it is how I feel safe with it.

We have a proliferation of interfaces, but this does not help to
understand the issues and code maintenance.

smp_read_barrier_depends() better documents the read barrier than
lockless_dereference().
I think this is a matter of opinion. But in the current effort I've
seen cases where it is not clear what the barrier is actually
guaranteeing. I am glad that the current code is not one of those and
it has reasonable comments.

lockless_dereference() on the other hand makes the dependency explicit.
The point of having a lock or not is irrelevant here.

[1]
http://git.kernel.org/cgit/linux/kernel/git/davem/net.git/commit/?id=b416c144f46af1a30ddfa4e4319a8f077381ad63



Thanks!
-- 
Pranith
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help