[PATCH] conf: qemu: add support for io_uring

Zhenyu Ye posted 1 patch 4 years, 1 month ago
Test syntax-check failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20200312071732.2014-1-yezhenyu2@huawei.com
src/conf/domain_conf.c | 1 +
src/conf/domain_conf.h | 1 +
2 files changed, 2 insertions(+)
[PATCH] conf: qemu: add support for io_uring
Posted by Zhenyu Ye 4 years, 1 month ago
QEMU has added support for io_uring IO mode, see:

https://git.qemu.org/git/qemu.git/ adcd6e93.

This patch add support for io_uring in libvirt.

Signed-off-by: Zhenyu Ye <yezhenyu2@huawei.com>
---
 src/conf/domain_conf.c | 1 +
 src/conf/domain_conf.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index d2d97daf80..5ced2f3b6b 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -361,6 +361,7 @@ VIR_ENUM_IMPL(virDomainDiskIo,
               "default",
               "native",
               "threads",
+              "io_uring",
 );
 
 VIR_ENUM_IMPL(virDomainDeviceSGIO,
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 91b776c28a..905fdecab3 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -421,6 +421,7 @@ typedef enum {
     VIR_DOMAIN_DISK_IO_DEFAULT = 0,
     VIR_DOMAIN_DISK_IO_NATIVE,
     VIR_DOMAIN_DISK_IO_THREADS,
+    VIR_DOMAIN_DISK_IO_URING,
 
     VIR_DOMAIN_DISK_IO_LAST
 } virDomainDiskIo;
-- 
2.19.1



Re: [PATCH] conf: qemu: add support for io_uring
Posted by Peter Krempa 4 years, 1 month ago
On Thu, Mar 12, 2020 at 15:17:32 +0800, Zhenyu Ye wrote:
> QEMU has added support for io_uring IO mode, see:
> 
> https://git.qemu.org/git/qemu.git/ adcd6e93.
> 
> This patch add support for io_uring in libvirt.
> 
> Signed-off-by: Zhenyu Ye <yezhenyu2@huawei.com>
> ---
>  src/conf/domain_conf.c | 1 +
>  src/conf/domain_conf.h | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index d2d97daf80..5ced2f3b6b 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -361,6 +361,7 @@ VIR_ENUM_IMPL(virDomainDiskIo,
>                "default",
>                "native",
>                "threads",
> +              "io_uring",
>  );
>  
>  VIR_ENUM_IMPL(virDomainDeviceSGIO,
> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index 91b776c28a..905fdecab3 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -421,6 +421,7 @@ typedef enum {
>      VIR_DOMAIN_DISK_IO_DEFAULT = 0,
>      VIR_DOMAIN_DISK_IO_NATIVE,
>      VIR_DOMAIN_DISK_IO_THREADS,
> +    VIR_DOMAIN_DISK_IO_URING,
>  
>      VIR_DOMAIN_DISK_IO_LAST
>  } virDomainDiskIo;

Hi,

this unfortunately is far from complete.

You'll need to provide:

- XML schema additions (docs/schemas/domaincommon.rng)
- documentation (docs/formatdomain.html.in)
- a qemu capability flag to check whether it's supported:
  (src/qemu/qemu_capabilities.c/h), you can use the QAPI capability
  query string to check it:
  blockdev-add/arg-type/+file/aio/^io_uring
- a validation entry to reject config if the above capability is not
  present (qemuDomainValidateStorageSource src/qemu/qemu_domain.c)
- a test case for at least qemuxml2argv and qemuxml2xmltest, enhancing
  existing test files is okay (tests/qemuxml2argvdata), the test case
  must show that the appropriate qemu command line is generated

Please split the above additions to patches at least:

- src/conf/  and docs/ additions
- src/qemu/qemu_capabilities additions
- validation additions
- tests

and please follow the contributor guidelines. Specifically the part tha
the whole tree must compile cleanly after every patch so the changes
must be split properly.