Hi Eric, On Thu, Dec 8, 2016, at 20:41, Eric Dumazet wrote: > Idea of busylocks is to let producers grab an extra spinlock > to relieve pressure on the receive_queue spinlock shared by consumer. > > This behavior is requested only once socket receive queue is above > half occupancy. > > Under flood, this means that only one producer can be in line > trying to acquire the receive_queue spinlock. > > These busylock can be allocated on a per cpu manner, instead of a > per socket one (that would consume a cache line per socket) > > This patch considerably improves UDP behavior under stress, > depending on number of NIC RX queues and/or RPS spread.
This patch mostly improves situation for non-connected sockets. Do you think it makes sense to acquire the spinlock depending on the sockets state? Connected UDP sockets flow in on one CPU anyway? Otherwise the series looks really great, thanks!