EF_EPOLL_CTL_FAST

Onload User Guide (UG1586)

Document ID
UG1586
Release Date
2023-07-31
Revision
1.2 English
Name
ul_epoll_ctl_fast
Default
1
Minimum
0
Maximum
1
Scope
per-process

Avoid system calls in epoll_ctl() when using an accelerated epoll implementation. System calls are deferred until epoll_wait() blocks, and in some cases removed completely. This option improves performance for applications that call epoll_ctl() frequently.

Caveats:

  • This option has no effect when EF_UL_EPOLL=0.
  • Do not turn this option on if your application uses dup(), fork() or exec() with epoll file descriptors or with the sockets monitored by epoll.
  • If you monitor the epoll fd in another poll, select or epoll set, and have this option enabled, it might not give correct results.
  • If you monitor the epoll fd in another poll, select or epoll set, and the effects of epoll_ctl() are latency critical, then this option can cause latency spikes or even deadlock.
  • With EF_UL_EPOLL=2, this option is harmful if you are calling epoll_wait() and epoll_ctl() simultaneously from different threads or processes.