[PATCH 0/3] [RESEND] block: unify block and fdmon io_uring

Stefan Hajnoczi posted 3 patches 7 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250401142721.280287-1-stefanha@redhat.com
Maintainers: Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, Aarushi Mehta <mehta.aaru20@gmail.com>, Julia Suvorova <jusual@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>, Stefano Garzarella <sgarzare@redhat.com>, Fam Zheng <fam@euphon.net>, Paolo Bonzini <pbonzini@redhat.com>
include/block/aio.h     |  74 +++++-
include/block/raw-aio.h |   5 -
util/aio-posix.h        |   1 +
block/file-posix.c      |  25 +-
block/io_uring.c        | 489 ++++++++++------------------------------
stubs/io_uring.c        |  32 ---
util/aio-posix.c        |   9 +
util/async.c            |  35 ---
util/fdmon-io_uring.c   | 155 +++++++++----
block/trace-events      |  12 +-
stubs/meson.build       |   3 -
util/trace-events       |   4 +
12 files changed, 316 insertions(+), 528 deletions(-)
delete mode 100644 stubs/io_uring.c
[PATCH 0/3] [RESEND] block: unify block and fdmon io_uring
Posted by Stefan Hajnoczi 7 months, 2 weeks ago
For some reason the patch series didn't reach the mailing list. Resending.

Every AioContext has an io_uring context for file descriptor monitoring. In
addition, block/io_uring.c also has an io_uring context for disk I/O. This
patch series eliminates the extra io_uring context so that AioContext has a
single io_uring context.

Patch 2 introduces the aio_add_sqe() API for submitting custom io_uring SQEs.
Patch 3 then replaces its io_uring context with the aio_add_sqe() API so that
disk I/O requests share the AioContext's io_uring context.

I will post performance results when they become available.

Based-on: 20250326183340.1010531-1-stefanha@redhat.com

Stefan Hajnoczi (3):
  aio-posix: treat io_uring setup failure as fatal
  aio-posix: add aio_add_sqe() API for user-defined io_uring requests
  block/io_uring: use aio_add_sqe()

 include/block/aio.h     |  74 +++++-
 include/block/raw-aio.h |   5 -
 util/aio-posix.h        |   1 +
 block/file-posix.c      |  25 +-
 block/io_uring.c        | 489 ++++++++++------------------------------
 stubs/io_uring.c        |  32 ---
 util/aio-posix.c        |   9 +
 util/async.c            |  35 ---
 util/fdmon-io_uring.c   | 155 +++++++++----
 block/trace-events      |  12 +-
 stubs/meson.build       |   3 -
 util/trace-events       |   4 +
 12 files changed, 316 insertions(+), 528 deletions(-)
 delete mode 100644 stubs/io_uring.c

-- 
2.49.0