v4: Rebase onto master (with aio_disable_external):
Don't use epoll if aio_external_disabled(ctx);
Change assert on epoll_ctl return code to disable epoll;
Rerun benchmark;
v3: Remove the redundant check in aio_epoll_try_enable. [Stefan]
v2: Merge aio-epoll.c into aio-posix.c. [Paolo]
Capture some benchmark data in commit log.
This series adds the ability to use epoll in aio_poll() on Linux. It's switched
on in a dynamic way rather than static for two reasons: 1) when the number of
fds is not high enough, using epoll has little advantage; 2) when an epoll
incompatible fd needs to be handled, we need to fall back. The epoll is
enabled when a fd number threshold is met.
Fam Zheng (3):
aio: Introduce aio_external_disabled
aio: Introduce aio_context_setup
aio: Introduce aio-epoll.c
aio-posix.c | 188 +++++++++++++++++++++++++++++++++++++++++++++++++++-
aio-win32.c | 4 ++
async.c | 13 +++-
include/block/aio.h | 24 +++++++
4 files changed, 226 insertions(+), 3 deletions(-)
--
2.4.3