Re: [PATCH] io_uring: use io_uring_cq_ready() to check for ready cqes
On Thu, May 21, 2020 at 03:45:34PM +0100, Stefan Hajnoczi wrote: > On Tue, May 19, 2020 at 03:49:42PM +0200, Stefano Garzarella wrote: > > In qemu_luring_poll_cb() we are not using the cqe peeked from the > > CQ ring. We are using io_uring_peek_cqe() only to see if there > > are cqes ready, so we can replace it with io_uring_cq_ready(). > > > > Signed-off-by: Stefano Garzarella > > --- > > block/io_uring.c | 9 +++-- > > 1 file changed, 3 insertions(+), 6 deletions(-) > > io_uring_cq_ready() was added in liburing 0.2 and is already used by > fdmon-io_uring.c. It's safe to use here. > > I wanted to mention this in case anyone is concerned about dependencies. > liburing is a fast-moving target and everyone should be on liburing 0.5+. Yeah, thanks for doing that. I did this check, but I forgot to write it down... > > Thanks, applied to my block tree: > https://github.com/stefanha/qemu/commits/block Thanks, Stefano
Re: [PATCH] io_uring: use io_uring_cq_ready() to check for ready cqes
On Tue, May 19, 2020 at 03:49:42PM +0200, Stefano Garzarella wrote: > In qemu_luring_poll_cb() we are not using the cqe peeked from the > CQ ring. We are using io_uring_peek_cqe() only to see if there > are cqes ready, so we can replace it with io_uring_cq_ready(). > > Signed-off-by: Stefano Garzarella > --- > block/io_uring.c | 9 +++-- > 1 file changed, 3 insertions(+), 6 deletions(-) io_uring_cq_ready() was added in liburing 0.2 and is already used by fdmon-io_uring.c. It's safe to use here. I wanted to mention this in case anyone is concerned about dependencies. liburing is a fast-moving target and everyone should be on liburing 0.5+. Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan signature.asc Description: PGP signature
[PATCH] io_uring: use io_uring_cq_ready() to check for ready cqes
In qemu_luring_poll_cb() we are not using the cqe peeked from the CQ ring. We are using io_uring_peek_cqe() only to see if there are cqes ready, so we can replace it with io_uring_cq_ready(). Signed-off-by: Stefano Garzarella --- block/io_uring.c | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/block/io_uring.c b/block/io_uring.c index a3142ca989..bdf3dec3a1 100644 --- a/block/io_uring.c +++ b/block/io_uring.c @@ -277,13 +277,10 @@ static void qemu_luring_completion_cb(void *opaque) static bool qemu_luring_poll_cb(void *opaque) { LuringState *s = opaque; -struct io_uring_cqe *cqes; -if (io_uring_peek_cqe(>ring, ) == 0) { -if (cqes) { -luring_process_completions_and_submit(s); -return true; -} +if (io_uring_cq_ready(>ring)) { +luring_process_completions_and_submit(s); +return true; } return false; -- 2.25.4