On Mon, 2017-05-15 at 11:01 +0200, Paolo Abeni wrote: > under udp flood the sk_receive_queue spinlock is heavily contended. > This patch try to reduce the contention on such lock adding a > second receive queue to the udp sockets; recvmsg() looks first > in such queue and, only if empty, tries to fetch the data from > sk_receive_queue. The latter is spliced into the newly added > queue every time the receive path has to acquire the > sk_receive_queue lock. > > The accounting of forward allocated memory is still protected with > the sk_receive_queue lock, so udp_rmem_release() needs to acquire > both locks when the forward deficit is flushed. > > On specific scenarios we can end up acquiring and releasing the > sk_receive_queue lock multiple times; that will be covered by > the next patch > > Suggested-by: Eric Dumazet <eduma...@google.com> > Signed-off-by: Paolo Abeni <pab...@redhat.com> > ---
Very nice, thanks for working on this Paolo. Acked-by: Eric Dumazet <eduma...@google.com>