On Thu, 2016-09-29 at 07:13 -0700, Eric Dumazet wrote: > On Thu, 2016-09-29 at 16:01 +0200, Paolo Abeni wrote: > > > When we reach __sk_mem_reduce_allocated() we are sure we can free the > > specified amount of memory, so we only need to ensure consistent > > sk_prot->memory_allocated updates. The current atomic operation suffices > > to this. > > Then why are you updating sk->sk_forward_alloc using racy operations ? > > If this is not needed or racy, do not do it. Thank you for all the feedback. The actual forward allocated memory value is: atomic_read(&up->mem_allocated) - atomic_read(&sk->sk_rmem_alloc). sk_forward_alloc is updated only to hint to the user space the forward allocated memory value via the diag interface. If such information is not needed we can drop the update, and sk_forward_alloc will always be seen as 0 even when the socket has some forward allocation. Cheers, Paolo -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html