Am 13.11.2025 um 09:27 hat Michael Tokarev geschrieben:
> On 11/4/25 05:29, Stefan Hajnoczi wrote:
> ..
> > This patch series contains io_uring improvements:
> > 
> > 1. Support the glib event loop in fdmon-io_uring.
> >     - aio-posix: fix race between io_uring CQE and AioHandler deletion
> >     - aio-posix: keep polling enabled with fdmon-io_uring.c
> >     - tests/unit: skip test-nested-aio-poll with io_uring
> >     - aio-posix: integrate fdmon into glib event loop
> > 
> > 2. Enable fdmon-io_uring on hosts where io_uring is available at runtime.
> >     Otherwise continue using ppoll(2) or epoll(7).
> >     - aio: remove aio_context_use_g_source()
> > 
> > 3. Add the new aio_add_sqe() API for submitting io_uring requests in the 
> > QEMU
> >     event loop.
> >     - aio: free AioContext when aio_context_new() fails
> >     - aio: add errp argument to aio_context_setup()
> >     - aio-posix: gracefully handle io_uring_queue_init() failure
> >     - aio-posix: add aio_add_sqe() API for user-defined io_uring requests
> >     - aio-posix: avoid EventNotifier for cqe_handler_bh
> > 
> > 4. Use aio_add_sqe() in block/io_uring.c instead of creating a dedicated
> >     io_uring context for --blockdev aio=io_uring. This simplifies the code,
> >     reduces the number of file descriptors, and demonstrates the 
> > aio_add_sqe()
> >     API.
> >     - block/io_uring: use aio_add_sqe()
> >     - block/io_uring: use non-vectored read/write when possible
> > 
> > The highlight is aio_add_sqe(), which is needed for the FUSE-over-io_uring
> > Google Summer of Code project and other future QEMU features that natively 
> > use
> > Linux io_uring functionality.
> ..> Stefan Hajnoczi (15):
> >    aio-posix: fix race between io_uring CQE and AioHandler deletion
> >    aio-posix: fix fdmon-io_uring.c timeout stack variable lifetime
> >    aio-posix: fix spurious return from ->wait() due to signals
> >    aio-posix: keep polling enabled with fdmon-io_uring.c
> >    tests/unit: skip test-nested-aio-poll with io_uring
> >    aio-posix: integrate fdmon into glib event loop
> >    aio: remove aio_context_use_g_source()
> >    aio: free AioContext when aio_context_new() fails
> >    aio: add errp argument to aio_context_setup()
> >    aio-posix: gracefully handle io_uring_queue_init() failure
> >    aio-posix: unindent fdmon_io_uring_destroy()
> >    aio-posix: add fdmon_ops->dispatch()
> >    aio-posix: add aio_add_sqe() API for user-defined io_uring requests
> >    block/io_uring: use aio_add_sqe()
> >    block/io_uring: use non-vectored read/write when possible
> 
> Is there anything in there which should go to qemu-stable?
> 
> From the descriptions of a few changes it feels like something should.

fdmon-io_uring has effectively been dead code since commit ba607ca (and
until patch 7 in this series). The commit message of that commit makes
it sounds like there are cases where GSource is not enabled, but there
really aren't.

You may want to pick patch 2 anyway because it's a use after free and
may effectively hang QEMU (by using far too large timeouts), but from
what I can tell, without downstream code changes, you won't ever run
this code in relevant stable releases. QEMU 5.0 was the only release
that had it enabled before.

Kevin


Reply via email to