Features/IOUring: Difference between revisions
(Created page with "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 s...") |
(→Code) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
Aarushi Mehta is implementing io_uring support in QEMU as part of the Outreachy internship program. | Aarushi Mehta is implementing io_uring support in QEMU as part of the Outreachy internship program. | ||
=Code= | ==Code== | ||
* Aarushi's git repo: https://github.com/ | * Aarushi's git repo: https://github.com/rooshm/qemu/tree/io_uring | ||
=Status= | ==Plan== | ||
{|class="wikitable" style="font-size: small; text-align: center; table-layout: fixed;" | |||
! 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. | Early development. Not yet ready for testing. | ||
=How to use it= | ==How to use it== | ||
io_uring is an alternative AIO engine in QEMU. Instead of specifying <code>-drive aio=threads</code> or <code>-drive aio=native</code>, use <code>-drive aio=io_uring</code>. | io_uring is an alternative AIO engine in QEMU. Instead of specifying <code>-drive aio=threads</code> or <code>-drive aio=native</code>, use <code>-drive aio=io_uring</code>. | ||
==Details== | |||
* Aarushi Mehta <mehta.aaru20@gmail.com> ("roosh" on IRC) | |||
* Mentors: Julia Suvorova <jusual@mail.ru> ("jusual" on IRC), Stefan Hajnoczi <stefanha@redhat.com> ("stefanha" on IRC) | |||
[[Category:GSoC Project]] | [[Category:GSoC Project]] |
Latest revision as of 18:17, 23 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
- Aarushi's git repo: https://github.com/rooshm/qemu/tree/io_uring
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
.
Details
- Aarushi Mehta <mehta.aaru20@gmail.com> ("roosh" on IRC)
- Mentors: Julia Suvorova <jusual@mail.ru> ("jusual" on IRC), Stefan Hajnoczi <stefanha@redhat.com> ("stefanha" on IRC)