Features/IOUring: Difference between revisions

From QEMU
(Added Plan)
Line 4: Line 4:


=Code=
=Code=
* Aarushi's git repo: https://github.com/weatherwaxed/qemu/tree/mirroraio
* Aarushi's git repo: https://github.com/weatherwaxed/qemu/tree/io_uring


=Plan=
=Plan=

Revision as of 01:00, 18 May 2019

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.

Aarushi Mehta is implementing io_uring support in QEMU as part of the Outreachy internship program.

Code

Plan

Task/Week 1 2 3 4 5 6 7 8 9 10 11 12
1 - Extend block/file-posix.c to use io_uring. x x x
2 - Add polling mode support for completions. x x x
3 - Add support to register file descriptors. x
4 - Add polling mode support for submissions. x x
5 - Add support to register memory buffers. x x
6 - Add a fast path when QEMU block layer features are not in use . x x x
7 - Complete reporting of all benchmarking with io_uring. x


Status

Early development. Not yet ready for testing.

How to use it

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