Bug 1769597 - QEMU support for io_uring
Summary: QEMU support for io_uring
Keywords:
Status: CLOSED DEFERRED
Alias: None
Product: Red Hat Enterprise Linux Advanced Virtualization
Classification: Red Hat
Component: qemu-kvm
Version: 8.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Stefano Garzarella
QA Contact: qing.wang
URL:
Whiteboard:
Depends On: 1706143 1758680 1862551 1881561
Blocks: 1769598 1946935 1947230
TreeView+ depends on / blocked
 
Reported: 2019-11-06 22:46 UTC by Ademar Reis
Modified: 2021-06-18 15:21 UTC (History)
14 users (show)

Fixed In Version: qemu-v5.0.0
Doc Type: Enhancement
Doc Text:
Clone Of:
: 1947230 (view as bug list)
Environment:
Last Closed: 2021-05-06 07:30:28 UTC
Type: Feature Request
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Ademar Reis 2019-11-06 22:46:07 UTC
io_uring is a Linux API for asynchronous I/O. It is designed for higher performance than the older Linux AIO API that QEMU supports.

In QEMU, io_uring is an alternative AIO engine. Instead of specifying -drive aio=threads or -drive aio=native, use -drive aio=io_uring.

The kernel feature (io_uring itself) is described in this lwn.net article: https://lwn.net/Articles/776703/

The QEMU implementation was started as an Outreachy project and is expected to be merged in QEMU-4.2. The upstream page tracking progress is https://wiki.qemu.org/Features/IOUring

Comment 2 Stefan Hajnoczi 2019-11-07 09:32:40 UTC
The QEMU feature will be merged in 4.3.  The feature was not mature enough for 4.2 and further work would be required to achieve noticeable performance improvements over Linux AIO (fd registration, memory buffer registration, and kernel-side polling).

Comment 3 Daniel Berrangé 2019-11-07 10:00:36 UTC
NB, management apps like OpenStack will not expose this kind of low level knob to users. They require performance results to demonstrate which AIO (threads, native, uring) is the best performing in the variety of different storage setups, so that they can automatically pick a sensible AIO option for each storage setup used.

We previously had the perf team do this work for AIO threads vs native, so we need a new set of results to include uring. I think such performance result data & usage recommendations should be considered a blocker for calling this a supported feature in RHEL, even if it is merged in upstream QEMU already.

Comment 6 Ademar Reis 2020-02-05 23:07:53 UTC
QEMU has been recently split into sub-components and as a one-time operation to avoid breakage of tools, we are setting the QEMU sub-component of this BZ to "General". Please review and change the sub-component if necessary the next time you review this BZ. Thanks

Comment 17 qing.wang 2021-04-06 10:09:30 UTC
This is future feature issue, Do we have plan to support it ? it is ok for me to close it due to stale date.

Comment 18 Stefano Garzarella 2021-04-08 14:51:45 UTC
(In reply to qing.wang from comment #17)
> This is future feature issue, Do we have plan to support it ? it is ok for
> me to close it due to stale date.

Yes, we plan to support it, but until there's kernel support we can't do much.

Comment 19 RHEL Program Management 2021-05-06 07:30:28 UTC
After evaluating this issue, there are no plans to address it further or fix it in an upcoming release.  Therefore, it is being closed.  If plans change such that this issue will be fixed in an upcoming release, then the bug can be reopened.

Comment 20 qing.wang 2021-05-10 01:20:07 UTC
QE agree to close it.


Note You need to log in before you can comment on or make changes to this bug.