A number of storage performance optimizations for high IOPS devices are being developed for QEMU. They should be included in RHEL-AV qemu-kvm once complete.
The list of commits so far is:
7391d34c3c aio-posix: make AioHandler dispatch O(1) with epoll
4749079ce0 aio-posix: make AioHandler deletion O(1)
195ed8cb36 qemu/queue.h: add QLIST_SAFE_REMOVE()
ca8c6b2275 aio-posix: don't pass ns timeout to epoll_wait()
ff29ed3a33 aio-posix: fix use after leaving scope in aio_poll()
8c6b0356b5 util/async: make bh_aio_poll() O(1)
f25c0b5479 aio-posix: avoid reacquiring rcu_read_lock() when polling
920d557e5a memory: batch allocate ioeventfds in address_space_update_ioeventfds()
d37d0e365a aio-posix: remove idle poll handlers to improve scalability
aa38e19f05 aio-posix: support userspace polling of fd monitoring
73fd282e7b aio-posix: add io_uring fd monitoring implementation
b321051cf4 aio-posix: simplify FDMonOps->update() prototype
1f050a4690 aio-posix: extract ppoll(2) and epoll(7) fd monitoring
3aa221b382 aio-posix: move RCU_READ_LOCK() into run_poll_handlers()
e4346192f1 aio-posix: completely stop polling when disabled
c39cbedb54 aio-posix: remove confusing QLIST_SAFE_REMOVE()
a31ca6801c qemu/queue.h: clear linked list pointers on remove
ff807d5592 aio-posix: fix io_uring with external events
ae60ab7eb2 aio-posix: fix test-aio /aio/event/wait with fdmon-io_uring
636b836d5f aio-posix: signal-proof fdmon-io_uring
44277bf914 aio-posix: keep aio_notify_me disabled during polling
601829f88e async: always set ctx->notified in aio_notify()
c13be5a1bf async: rename event_notifier_dummy_cb/poll()
All commits before Comment 5 are in v5.1.0 and will be included in the downstream rebase.
Most commits improve scalability so that multi-queue can be enabled when there are 100+ devices. However, multi-queue is not yet enabled by default.
Therefore I am closing this BZ for now. There is no new feature to track here.
I will file BZs for specific features as they become ready.