Message ID | 20200519134942.118178-1-sgarzare@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | io_uring: use io_uring_cq_ready() to check for ready cqes | expand |
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 <sgarzare@redhat.com> > --- > 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
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 <sgarzare@redhat.com> > > --- > > 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
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(&s->ring, &cqes) == 0) { - if (cqes) { - luring_process_completions_and_submit(s); - return true; - } + if (io_uring_cq_ready(&s->ring)) { + luring_process_completions_and_submit(s); + return true; } return false;
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 <sgarzare@redhat.com> --- block/io_uring.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)