diff options
author | Stefan Hajnoczi | 2020-03-05 18:08:04 +0100 |
---|---|---|
committer | Stefan Hajnoczi | 2020-03-09 17:41:31 +0100 |
commit | 73fd282e7b6dd4e4ea1c3bbb3d302c8db51e4ccf (patch) | |
tree | 1338ebeba78a352f20904f9118f694c459599179 /configure | |
parent | aio-posix: simplify FDMonOps->update() prototype (diff) | |
download | qemu-73fd282e7b6dd4e4ea1c3bbb3d302c8db51e4ccf.tar.gz qemu-73fd282e7b6dd4e4ea1c3bbb3d302c8db51e4ccf.tar.xz qemu-73fd282e7b6dd4e4ea1c3bbb3d302c8db51e4ccf.zip |
aio-posix: add io_uring fd monitoring implementation
The recent Linux io_uring API has several advantages over ppoll(2) and
epoll(2). Details are given in the source code.
Add an io_uring implementation and make it the default on Linux.
Performance is the same as with epoll(7) but later patches add
optimizations that take advantage of io_uring.
It is necessary to change how aio_set_fd_handler() deals with deleting
AioHandlers since removing monitored file descriptors is asynchronous in
io_uring. fdmon_io_uring_remove() marks the AioHandler deleted and
aio_set_fd_handler() will let it handle deletion in that case.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Link: https://lore.kernel.org/r/20200305170806.1313245-6-stefanha@redhat.com
Message-Id: <20200305170806.1313245-6-stefanha@redhat.com>
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -4093,6 +4093,11 @@ if test "$linux_io_uring" != "no" ; then linux_io_uring_cflags=$($pkg_config --cflags liburing) linux_io_uring_libs=$($pkg_config --libs liburing) linux_io_uring=yes + + # io_uring is used in libqemuutil.a where per-file -libs variables are not + # seen by programs linking the archive. It's not ideal, but just add the + # library dependency globally. + LIBS="$linux_io_uring_libs $LIBS" else if test "$linux_io_uring" = "yes" ; then feature_not_found "linux io_uring" "Install liburing devel" |