On Wed, 2016-06-22 at 11:43 -0700, Eric Dumazet wrote: > On Wed, 2016-06-22 at 14:18 -0400, Jason Baron wrote: > > > > > > > For 1/2, the getting the correct memory barrier, should I re-submit > > that as a separate patch? > > Are you sure a full memory barrier (smp_mb() is needed ? > > Maybe smp_wmb() would be enough ? > > (And smp_rmb() in tcp_poll() ?)
Well, in tcp_poll() smp_mb__after_atomic() is fine as it follows set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); (although we might add a comment why we should keep sk_set_bit(SOCKWQ_ASYNC_NOSPACE, sk) before the set_bit() !) But presumably smp_wmb() would be enough in tcp_check_space()
