qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Michael Tokarev <mjt@tls.msk.ru>
Cc: Stefan Hajnoczi <stefanha@redhat.com>,
	qemu-devel@nongnu.org, eblake@redhat.com,
	Hanna Czenczek <hreitz@redhat.com>,
	qemu-block@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	hibriansong@gmail.com
Subject: Re: [PATCH v6 00/15] aio: add the aio_add_sqe() io_uring API
Date: Thu, 13 Nov 2025 14:32:48 +0100	[thread overview]
Message-ID: <aRXeAENqCj1sN7_2@redhat.com> (raw)
In-Reply-To: <8ce36148-47a0-463f-9af6-669c69c8b575@tls.msk.ru>

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	other threads:[~2025-11-13 13:37 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-04  2:29 [PATCH v6 00/15] aio: add the aio_add_sqe() io_uring API Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 01/15] aio-posix: fix race between io_uring CQE and AioHandler deletion Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 02/15] aio-posix: fix fdmon-io_uring.c timeout stack variable lifetime Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 03/15] aio-posix: fix spurious return from ->wait() due to signals Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 04/15] aio-posix: keep polling enabled with fdmon-io_uring.c Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 05/15] tests/unit: skip test-nested-aio-poll with io_uring Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 06/15] aio-posix: integrate fdmon into glib event loop Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 07/15] aio: remove aio_context_use_g_source() Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 08/15] aio: free AioContext when aio_context_new() fails Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 09/15] aio: add errp argument to aio_context_setup() Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 10/15] aio-posix: gracefully handle io_uring_queue_init() failure Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 11/15] aio-posix: unindent fdmon_io_uring_destroy() Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 12/15] aio-posix: add fdmon_ops->dispatch() Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 13/15] aio-posix: add aio_add_sqe() API for user-defined io_uring requests Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 14/15] block/io_uring: use aio_add_sqe() Stefan Hajnoczi
2025-11-04  2:29 ` [PATCH v6 15/15] block/io_uring: use non-vectored read/write when possible Stefan Hajnoczi
2025-11-04 10:38 ` [PATCH v6 00/15] aio: add the aio_add_sqe() io_uring API Kevin Wolf
2025-11-13  8:27 ` Michael Tokarev
2025-11-13 13:32   ` Kevin Wolf [this message]
2025-11-13 14:51     ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aRXeAENqCj1sN7_2@redhat.com \
    --to=kwolf@redhat.com \
    --cc=eblake@redhat.com \
    --cc=fam@euphon.net \
    --cc=hibriansong@gmail.com \
    --cc=hreitz@redhat.com \
    --cc=mjt@tls.msk.ru \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).