public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH 0/2] Enable io-uring support in QEMU
@ 2021-06-07 11:48 Stefan Reiter
  2021-06-07 11:48 ` [pve-devel] [PATCH pve-qemu 1/2] enable io-uring support in QEMU builds Stefan Reiter
  2021-06-07 11:48 ` [pve-devel] [PATCH qemu-server 2/2] enable io-uring support Stefan Reiter
  0 siblings, 2 replies; 5+ messages in thread
From: Stefan Reiter @ 2021-06-07 11:48 UTC (permalink / raw)
  To: pve-devel

Ran my full test suite on it (QEMU 6.0, kernel 5.11.21) and it completed fine,
including migrate, snapshot and backup. No benchmarks done yet, so any
performance gains are only theoretical for now :)

pve-qemu gains a new build-depends on 'liburing-dev' - this package is available
in Debian bullseye, but there seems to be some dependency issues with our
pve-kernel-libc-dev package. For now, testing was conducted by building liburing
from source, i.e. clone 'https://github.com/axboe/liburing' and run
'make-debs.sh'.


pve-qemu: Stefan Reiter (1):
  enable io-uring support in QEMU builds

 debian/control | 1 +
 debian/rules   | 1 +
 2 files changed, 2 insertions(+)

qemu-server: Stefan Reiter (1):
  enable io-uring support

 PVE/QemuServer/Drive.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.30.2




^ permalink raw reply	[flat|nested] 5+ messages in thread

* [pve-devel] [PATCH pve-qemu 1/2] enable io-uring support in QEMU builds
  2021-06-07 11:48 [pve-devel] [PATCH 0/2] Enable io-uring support in QEMU Stefan Reiter
@ 2021-06-07 11:48 ` Stefan Reiter
  2021-06-21  7:57   ` [pve-devel] applied: " Thomas Lamprecht
  2021-06-07 11:48 ` [pve-devel] [PATCH qemu-server 2/2] enable io-uring support Stefan Reiter
  1 sibling, 1 reply; 5+ messages in thread
From: Stefan Reiter @ 2021-06-07 11:48 UTC (permalink / raw)
  To: pve-devel

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
---

Oh if only all QEMU changes were this simple...

 debian/control | 1 +
 debian/rules   | 1 +
 2 files changed, 2 insertions(+)

diff --git a/debian/control b/debian/control
index 38c45ce..4da3409 100644
--- a/debian/control
+++ b/debian/control
@@ -27,6 +27,7 @@ Build-Depends: autotools-dev,
                libspice-protocol-dev (>= 0.12.14~),
                libspice-server-dev (>= 0.14.0~),
                libsystemd-dev,
+               liburing-dev,
                libusb-1.0-0-dev (>= 1.0.17-1),
                libusbredirparser-dev (>= 0.6-2),
                meson,
diff --git a/debian/rules b/debian/rules
index 1f623d8..0417703 100755
--- a/debian/rules
+++ b/debian/rules
@@ -69,6 +69,7 @@ ${BUILDDIR}/config.status: configure
 	--enable-libiscsi \
 	--enable-libusb \
 	--enable-linux-aio \
+	--enable-linux-io-uring \
 	--enable-numa \
 	--enable-rbd \
 	--enable-seccomp \
-- 
2.30.2





^ permalink raw reply	[flat|nested] 5+ messages in thread

* [pve-devel] [PATCH qemu-server 2/2] enable io-uring support
  2021-06-07 11:48 [pve-devel] [PATCH 0/2] Enable io-uring support in QEMU Stefan Reiter
  2021-06-07 11:48 ` [pve-devel] [PATCH pve-qemu 1/2] enable io-uring support in QEMU builds Stefan Reiter
@ 2021-06-07 11:48 ` Stefan Reiter
  2021-06-21  8:00   ` Thomas Lamprecht
  1 sibling, 1 reply; 5+ messages in thread
From: Stefan Reiter @ 2021-06-07 11:48 UTC (permalink / raw)
  To: pve-devel

Note that the value in this enum directly represents the value passed to
QEMU, so we need to use the underscore.

Off by default, updated QEMU required, but no compatibility issues, as
this is a new value that wasn't valid before, and setting it is the
users choice.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
---

We probably want this in the GUI as well, there isn't even an option for 'aio'
in general atm. Thought I'd send it out without just for testing and getting the
conversation going.

On a side note, I feel like exposing an option called "threads" when we already
have "iothread" as well might get confusing.

Also, if it works well, we could probably make this the default later (probably
not a great idea for 7.0 though?).

 PVE/QemuServer/Drive.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/PVE/QemuServer/Drive.pm b/PVE/QemuServer/Drive.pm
index 146a4ab..82a6bfe 100644
--- a/PVE/QemuServer/Drive.pm
+++ b/PVE/QemuServer/Drive.pm
@@ -116,7 +116,7 @@ my %drivedesc_base = (
     },
     aio => {
 	type => 'string',
-	enum => [qw(native threads)],
+	enum => [qw(native threads io_uring)],
 	description => 'AIO type to use.',
 	optional => 1,
     },
-- 
2.30.2





^ permalink raw reply	[flat|nested] 5+ messages in thread

* [pve-devel] applied: [PATCH pve-qemu 1/2] enable io-uring support in QEMU builds
  2021-06-07 11:48 ` [pve-devel] [PATCH pve-qemu 1/2] enable io-uring support in QEMU builds Stefan Reiter
@ 2021-06-21  7:57   ` Thomas Lamprecht
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Lamprecht @ 2021-06-21  7:57 UTC (permalink / raw)
  To: Proxmox VE development discussion, Stefan Reiter

On 07.06.21 13:48, Stefan Reiter wrote:
> Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
> ---
> 
> Oh if only all QEMU changes were this simple...
> 
>  debian/control | 1 +
>  debian/rules   | 1 +
>  2 files changed, 2 insertions(+)
> 
>

applied, thanks!




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [pve-devel] [PATCH qemu-server 2/2] enable io-uring support
  2021-06-07 11:48 ` [pve-devel] [PATCH qemu-server 2/2] enable io-uring support Stefan Reiter
@ 2021-06-21  8:00   ` Thomas Lamprecht
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Lamprecht @ 2021-06-21  8:00 UTC (permalink / raw)
  To: Proxmox VE development discussion, Stefan Reiter

On 07.06.21 13:48, Stefan Reiter wrote:
> Note that the value in this enum directly represents the value passed to
> QEMU, so we need to use the underscore.
> 
> Off by default, updated QEMU required, but no compatibility issues, as
> this is a new value that wasn't valid before, and setting it is the
> users choice.
> 
> Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
> ---
> 
> We probably want this in the GUI as well, there isn't even an option for 'aio'
> in general atm. Thought I'd send it out without just for testing and getting the
> conversation going.
> 
> On a side note, I feel like exposing an option called "threads" when we already
> have "iothread" as well might get confusing.
> 
> Also, if it works well, we could probably make this the default later (probably
> not a great idea for 7.0 though?).

Why not, we get a beta there and it's a new major release, it's at least better
there than 7.1 which should be more stable, so IMO now is one of the better times
to do such a switch.

So, I think that if you found nothing with your testing we should enable it as
default, but naturally not baked in, changing it back should be allowed, that way
users can also temporarily workaround any possible issue we did not found yet.

> 
>  PVE/QemuServer/Drive.pm | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/PVE/QemuServer/Drive.pm b/PVE/QemuServer/Drive.pm
> index 146a4ab..82a6bfe 100644
> --- a/PVE/QemuServer/Drive.pm
> +++ b/PVE/QemuServer/Drive.pm
> @@ -116,7 +116,7 @@ my %drivedesc_base = (
>      },
>      aio => {
>  	type => 'string',
> -	enum => [qw(native threads)],
> +	enum => [qw(native threads io_uring)],
>  	description => 'AIO type to use.',
>  	optional => 1,
>      },
> 





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-06-21  8:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-07 11:48 [pve-devel] [PATCH 0/2] Enable io-uring support in QEMU Stefan Reiter
2021-06-07 11:48 ` [pve-devel] [PATCH pve-qemu 1/2] enable io-uring support in QEMU builds Stefan Reiter
2021-06-21  7:57   ` [pve-devel] applied: " Thomas Lamprecht
2021-06-07 11:48 ` [pve-devel] [PATCH qemu-server 2/2] enable io-uring support Stefan Reiter
2021-06-21  8:00   ` Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal