* [PULL for-5.0 0/1] Block patches
@ 2020-03-23 19:24 Stefan Hajnoczi
2020-03-23 19:24 ` [PULL for-5.0 1/1] aio-posix: fix io_uring with external events Stefan Hajnoczi
2020-03-24 9:50 ` [PULL for-5.0 0/1] Block patches Peter Maydell
0 siblings, 2 replies; 3+ messages in thread
From: Stefan Hajnoczi @ 2020-03-23 19:24 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, Peter Maydell, qemu-block, Max Reitz,
Stefan Hajnoczi, Fam Zheng
The following changes since commit 29e0855c5af62bbb0b0b6fed792e004dad92ba95:
Merge remote-tracking branch 'remotes/elmarco/tags/slirp-pull-request' into staging (2020-03-22 21:00:38 +0000)
are available in the Git repository at:
https://github.com/stefanha/qemu.git tags/block-pull-request
for you to fetch changes up to ff807d559205a434fd37d3343f01a0ab128bd190:
aio-posix: fix io_uring with external events (2020-03-23 11:05:44 +0000)
----------------------------------------------------------------
Pull request
----------------------------------------------------------------
Stefan Hajnoczi (1):
aio-posix: fix io_uring with external events
util/fdmon-io_uring.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
--
2.24.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PULL for-5.0 1/1] aio-posix: fix io_uring with external events
2020-03-23 19:24 [PULL for-5.0 0/1] Block patches Stefan Hajnoczi
@ 2020-03-23 19:24 ` Stefan Hajnoczi
2020-03-24 9:50 ` [PULL for-5.0 0/1] Block patches Peter Maydell
1 sibling, 0 replies; 3+ messages in thread
From: Stefan Hajnoczi @ 2020-03-23 19:24 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, Peter Maydell, qemu-block, Julia Suvorova, Max Reitz,
Stefan Hajnoczi, Fam Zheng, Stefano Garzarella
When external event sources are disabled fdmon-io_uring falls back to
fdmon-poll. The ->need_wait() callback needs to watch for this so it
can return true when external event sources are disabled.
It is also necessary to call ->wait() when AioHandlers have changed
because io_uring is asynchronous and we must submit new sqes.
Both of these changes to ->need_wait() together fix tests/test-aio -p
/aio/external-client, which failed with:
test-aio: tests/test-aio.c:404: test_aio_external_client: Assertion `aio_poll(ctx, false)' failed.
Reported-by: Julia Suvorova <jusual@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Message-id: 20200319163559.117903-1-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
util/fdmon-io_uring.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/util/fdmon-io_uring.c b/util/fdmon-io_uring.c
index 893b79b622..7e143ef515 100644
--- a/util/fdmon-io_uring.c
+++ b/util/fdmon-io_uring.c
@@ -290,7 +290,18 @@ static int fdmon_io_uring_wait(AioContext *ctx, AioHandlerList *ready_list,
static bool fdmon_io_uring_need_wait(AioContext *ctx)
{
- return io_uring_cq_ready(&ctx->fdmon_io_uring);
+ /* Have io_uring events completed? */
+ if (io_uring_cq_ready(&ctx->fdmon_io_uring)) {
+ return true;
+ }
+
+ /* Do we need to submit new io_uring sqes? */
+ if (!QSLIST_EMPTY_RCU(&ctx->submit_list)) {
+ return true;
+ }
+
+ /* Are we falling back to fdmon-poll? */
+ return atomic_read(&ctx->external_disable_cnt);
}
static const FDMonOps fdmon_io_uring_ops = {
--
2.24.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PULL for-5.0 0/1] Block patches
2020-03-23 19:24 [PULL for-5.0 0/1] Block patches Stefan Hajnoczi
2020-03-23 19:24 ` [PULL for-5.0 1/1] aio-posix: fix io_uring with external events Stefan Hajnoczi
@ 2020-03-24 9:50 ` Peter Maydell
1 sibling, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2020-03-24 9:50 UTC (permalink / raw)
To: Stefan Hajnoczi
Cc: Kevin Wolf, Fam Zheng, QEMU Developers, Qemu-block, Max Reitz
On Mon, 23 Mar 2020 at 19:24, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>
> The following changes since commit 29e0855c5af62bbb0b0b6fed792e004dad92ba95:
>
> Merge remote-tracking branch 'remotes/elmarco/tags/slirp-pull-request' into staging (2020-03-22 21:00:38 +0000)
>
> are available in the Git repository at:
>
> https://github.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to ff807d559205a434fd37d3343f01a0ab128bd190:
>
> aio-posix: fix io_uring with external events (2020-03-23 11:05:44 +0000)
>
> ----------------------------------------------------------------
> Pull request
>
> ----------------------------------------------------------------
>
> Stefan Hajnoczi (1):
> aio-posix: fix io_uring with external events
>
> util/fdmon-io_uring.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/5.0
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-03-24 9:51 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-23 19:24 [PULL for-5.0 0/1] Block patches Stefan Hajnoczi
2020-03-23 19:24 ` [PULL for-5.0 1/1] aio-posix: fix io_uring with external events Stefan Hajnoczi
2020-03-24 9:50 ` [PULL for-5.0 0/1] Block patches Peter Maydell
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).