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>
66 lines
2.3 KiB
Makefile
66 lines
2.3 KiB
Makefile
util-obj-y = osdep.o cutils.o unicode.o qemu-timer-common.o
|
|
util-obj-y += bufferiszero.o
|
|
util-obj-y += lockcnt.o
|
|
util-obj-y += aiocb.o async.o aio-wait.o thread-pool.o qemu-timer.o
|
|
util-obj-y += main-loop.o
|
|
util-obj-$(call lnot,$(CONFIG_ATOMIC64)) += atomic64.o
|
|
util-obj-$(CONFIG_POSIX) += aio-posix.o
|
|
util-obj-$(CONFIG_POSIX) += fdmon-poll.o
|
|
util-obj-$(CONFIG_EPOLL_CREATE1) += fdmon-epoll.o
|
|
util-obj-$(CONFIG_LINUX_IO_URING) += fdmon-io_uring.o
|
|
util-obj-$(CONFIG_POSIX) += compatfd.o
|
|
util-obj-$(CONFIG_POSIX) += event_notifier-posix.o
|
|
util-obj-$(CONFIG_POSIX) += mmap-alloc.o
|
|
util-obj-$(CONFIG_POSIX) += oslib-posix.o
|
|
util-obj-$(CONFIG_POSIX) += qemu-openpty.o
|
|
util-obj-$(CONFIG_POSIX) += qemu-thread-posix.o
|
|
util-obj-$(CONFIG_POSIX) += memfd.o
|
|
util-obj-$(CONFIG_WIN32) += aio-win32.o
|
|
util-obj-$(CONFIG_WIN32) += event_notifier-win32.o
|
|
util-obj-$(CONFIG_WIN32) += oslib-win32.o
|
|
util-obj-$(CONFIG_WIN32) += qemu-thread-win32.o
|
|
util-obj-y += envlist.o path.o module.o
|
|
util-obj-y += host-utils.o
|
|
util-obj-y += bitmap.o bitops.o hbitmap.o
|
|
util-obj-y += fifo8.o
|
|
util-obj-y += nvdimm-utils.o
|
|
util-obj-y += cacheinfo.o
|
|
util-obj-y += error.o qemu-error.o
|
|
util-obj-y += qemu-print.o
|
|
util-obj-y += id.o
|
|
util-obj-y += iov.o qemu-config.o qemu-sockets.o uri.o notify.o
|
|
util-obj-y += qemu-option.o qemu-progress.o
|
|
util-obj-y += keyval.o
|
|
util-obj-y += hexdump.o
|
|
util-obj-y += crc32c.o
|
|
util-obj-y += uuid.o
|
|
util-obj-y += throttle.o
|
|
util-obj-y += getauxval.o
|
|
util-obj-y += readline.o
|
|
util-obj-y += rcu.o
|
|
util-obj-$(CONFIG_MEMBARRIER) += sys_membarrier.o
|
|
util-obj-y += qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o
|
|
util-obj-y += qemu-coroutine-sleep.o
|
|
util-obj-y += qemu-co-shared-resource.o
|
|
util-obj-y += coroutine-$(CONFIG_COROUTINE_BACKEND).o
|
|
util-obj-y += buffer.o
|
|
util-obj-y += timed-average.o
|
|
util-obj-y += base64.o
|
|
util-obj-y += log.o
|
|
util-obj-y += pagesize.o
|
|
util-obj-y += qdist.o
|
|
util-obj-y += qht.o
|
|
util-obj-y += qsp.o
|
|
util-obj-y += range.o
|
|
util-obj-y += stats64.o
|
|
util-obj-y += systemd.o
|
|
util-obj-y += iova-tree.o
|
|
util-obj-$(CONFIG_INOTIFY1) += filemonitor-inotify.o
|
|
util-obj-$(call lnot,$(CONFIG_INOTIFY1)) += filemonitor-stub.o
|
|
util-obj-$(CONFIG_LINUX) += vfio-helpers.o
|
|
util-obj-$(CONFIG_POSIX) += drm.o
|
|
util-obj-y += guest-random.o
|
|
util-obj-$(CONFIG_GIO) += dbus.o
|
|
dbus.o-cflags = $(GIO_CFLAGS)
|
|
dbus.o-libs = $(GIO_LIBS)
|