epoll improvements

Nev Ikte nevikte at gmx.com
Thu Oct 16 08:09:05 EDT 2014


Hi,

I've a server using epoll and I've noticed that when
the traffic is low, the epoll_wait() latency goes up.

I've tried to reproduce it with a single client
and basically, if ep_poll() is able to find an event or the timeout is 0,
the latency is down to 5usec, otherwise if it enters the waitqueue
the latency goes up to 10-25usec, which impact the application performance.

Looking at the code there is something like a todo ("Is it worth to try to dig for events ?")
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/fs/eventpoll.c?id=refs/tags/v3.17#n1650

Anyone knows how the situation can be improved?
in theory having something like a 50usec spin loop 
checking for events before entering in the waitqueue should improve the situation.

suggestion? patches?
thanks!



More information about the Kernelnewbies mailing list