On Fri, 2017-03-24 at 10:08 -0700, Alexander Duyck wrote: > From: Sridhar Samudrala <sridhar.samudrala@xxxxxxxxx> > > This patch adds busy poll support to epoll. The implementation is meant to > be opportunistic in that it will take the NAPI ID from the last socket > that is added to the ready list that contains a valid NAPI ID and it will > use that for busy polling until the ready list goes empty. Once the ready > list goes empty the NAPI ID is reset and busy polling is disabled until a > new socket is added to the ready list. > > In addition when we insert a new socket into the epoll we record the NAPI > ID and assume we are going to receive events on it. If that doesn't occur > it will be evicted as the active NAPI ID and we will resume normal > behavior. > > An application can use SO_INCOMING_CPU or SO_REUSEPORT_ATTACH_C/EBPF socket > options to spread the incoming connections to specific worker threads > based on the incoming queue. This enables epoll for each worker thread > to have only sockets that receive packets from a single queue. So when an > application calls epoll_wait() and there are no events available to report, > busy polling is done on the associated queue to pull the packets. > > Signed-off-by: Sridhar Samudrala <sridhar.samudrala@xxxxxxxxx> > Signed-off-by: Alexander Duyck <alexander.h.duyck@xxxxxxxxx> > --- > fs/eventpoll.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 93 insertions(+) Acked-by: Eric Dumazet <edumazet@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html