Википедия говорит
в отличие от более старых системных вызовов, которые работают на O (n), epoll работает в O (1) [2]).
http://en.wikipedia.org/wiki/Epoll
Однако исходный код на fs/eventpoll.c на Linux-2.6.38, кажется, что он реализован с деревом RB для поиска, который имеет O (logN)
/*
* Search the file inside the eventpoll tree. The RB tree operations
* are protected by the "mtx" mutex, and ep_find() must be called with
* "mtx" held.
*/
static struct epitem *ep_find(struct eventpoll *ep, struct file *file, int fd)
{
Фактически, я не мог видеть какую-либо справочную страницу, в которой говорилось, что сложность epoll() равна O (1). Почему он известен как O (1)?