Loading pkgs/by-name/in/incus/0c37b7e3ec65b4d0e166e2127d9f1835320165b8.patch 0 → 100644 +29 −0 Original line number Diff line number Diff line From 0c37b7e3ec65b4d0e166e2127d9f1835320165b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@stgraber.org> Date: Fri, 6 Sep 2024 17:07:11 -0400 Subject: [PATCH] incusd/instance/qemu: Make O_DIRECT conditional on directCache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <stgraber@stgraber.org> --- internal/server/instance/drivers/driver_qemu.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/server/instance/drivers/driver_qemu.go b/internal/server/instance/drivers/driver_qemu.go index 5a94c9db43..9609b73c1b 100644 --- a/internal/server/instance/drivers/driver_qemu.go +++ b/internal/server/instance/drivers/driver_qemu.go @@ -4276,7 +4276,9 @@ func (d *qemu) addDriveConfig(qemuDev map[string]string, bootIndexes map[string] permissions = unix.O_RDONLY } - permissions |= unix.O_DIRECT + if directCache { + permissions |= unix.O_DIRECT + } f, err := os.OpenFile(driveConf.DevPath, permissions, 0) if err != nil { pkgs/by-name/in/incus/572afb06f66f83ca95efa1b9386fceeaa1c9e11b.patch 0 → 100644 +28 −0 Original line number Diff line number Diff line From 572afb06f66f83ca95efa1b9386fceeaa1c9e11b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@stgraber.org> Date: Fri, 6 Sep 2024 15:51:35 -0400 Subject: [PATCH] incusd/instance/qemu: Set O_DIRECT when passing in FDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is required in most cases with QEMU 9.1.0. Signed-off-by: Stéphane Graber <stgraber@stgraber.org> --- internal/server/instance/drivers/driver_qemu.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/server/instance/drivers/driver_qemu.go b/internal/server/instance/drivers/driver_qemu.go index 37da21f42f..e25aab0667 100644 --- a/internal/server/instance/drivers/driver_qemu.go +++ b/internal/server/instance/drivers/driver_qemu.go @@ -4277,6 +4277,8 @@ func (d *qemu) addDriveConfig(qemuDev map[string]string, bootIndexes map[string] permissions = unix.O_RDONLY } + permissions |= unix.O_DIRECT + f, err := os.OpenFile(driveConf.DevPath, permissions, 0) if err != nil { return fmt.Errorf("Failed opening file descriptor for disk device %q: %w", driveConf.DevName, err) pkgs/by-name/in/incus/58eeb4eeee8a9e7f9fa9c62443d00f0ec6797078.patch 0 → 100644 +33 −0 Original line number Diff line number Diff line From 58eeb4eeee8a9e7f9fa9c62443d00f0ec6797078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@stgraber.org> Date: Fri, 6 Sep 2024 17:10:01 -0400 Subject: [PATCH] incusd/instance/qemu: Force threads I/O mode for unsafe/writeback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The default "native" aioMode requires direct I/O which is incompatible with unsafe/writeback. Signed-off-by: Stéphane Graber <stgraber@stgraber.org> --- internal/server/instance/drivers/driver_qemu.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/server/instance/drivers/driver_qemu.go b/internal/server/instance/drivers/driver_qemu.go index 9609b73c1b..a5a4944d40 100644 --- a/internal/server/instance/drivers/driver_qemu.go +++ b/internal/server/instance/drivers/driver_qemu.go @@ -4088,9 +4088,11 @@ func (d *qemu) addDriveConfig(qemuDev map[string]string, bootIndexes map[string] noFlushCache := false // Don't ignore any flush requests for the device. if cacheMode == "unsafe" { + aioMode = "threads" directCache = false noFlushCache = true } else if cacheMode == "writeback" { + aioMode = "threads" directCache = false } pkgs/by-name/in/incus/package.nix +9 −4 Original line number Diff line number Diff line import ./generic.nix { hash = "sha256-fWc+qUAFlqMuiDhZzEY99rXHjKq40GPzplSN8ggId9g="; version = "6.4.0"; vendorHash = "sha256-j+ywLnN+/6HvMKOEr1FuXTLxUMX7VtU4eG3GGx3yAOo="; patches = [ ]; hash = "sha256-FdoJI0SUH8KS3Epyw/HejgyhISWGLePsIjYUS2YTBvc="; version = "6.5.0"; vendorHash = "sha256-8e2X7HIy1IEx6p41SHJyq5dNUJ3rRC2maXC4uNaSlnk="; patches = [ # qemu 9.1 compat, remove in 6.6 ./572afb06f66f83ca95efa1b9386fceeaa1c9e11b.patch ./58eeb4eeee8a9e7f9fa9c62443d00f0ec6797078.patch ./0c37b7e3ec65b4d0e166e2127d9f1835320165b8.patch ]; } Loading
pkgs/by-name/in/incus/0c37b7e3ec65b4d0e166e2127d9f1835320165b8.patch 0 → 100644 +29 −0 Original line number Diff line number Diff line From 0c37b7e3ec65b4d0e166e2127d9f1835320165b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@stgraber.org> Date: Fri, 6 Sep 2024 17:07:11 -0400 Subject: [PATCH] incusd/instance/qemu: Make O_DIRECT conditional on directCache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <stgraber@stgraber.org> --- internal/server/instance/drivers/driver_qemu.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/server/instance/drivers/driver_qemu.go b/internal/server/instance/drivers/driver_qemu.go index 5a94c9db43..9609b73c1b 100644 --- a/internal/server/instance/drivers/driver_qemu.go +++ b/internal/server/instance/drivers/driver_qemu.go @@ -4276,7 +4276,9 @@ func (d *qemu) addDriveConfig(qemuDev map[string]string, bootIndexes map[string] permissions = unix.O_RDONLY } - permissions |= unix.O_DIRECT + if directCache { + permissions |= unix.O_DIRECT + } f, err := os.OpenFile(driveConf.DevPath, permissions, 0) if err != nil {
pkgs/by-name/in/incus/572afb06f66f83ca95efa1b9386fceeaa1c9e11b.patch 0 → 100644 +28 −0 Original line number Diff line number Diff line From 572afb06f66f83ca95efa1b9386fceeaa1c9e11b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@stgraber.org> Date: Fri, 6 Sep 2024 15:51:35 -0400 Subject: [PATCH] incusd/instance/qemu: Set O_DIRECT when passing in FDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is required in most cases with QEMU 9.1.0. Signed-off-by: Stéphane Graber <stgraber@stgraber.org> --- internal/server/instance/drivers/driver_qemu.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/server/instance/drivers/driver_qemu.go b/internal/server/instance/drivers/driver_qemu.go index 37da21f42f..e25aab0667 100644 --- a/internal/server/instance/drivers/driver_qemu.go +++ b/internal/server/instance/drivers/driver_qemu.go @@ -4277,6 +4277,8 @@ func (d *qemu) addDriveConfig(qemuDev map[string]string, bootIndexes map[string] permissions = unix.O_RDONLY } + permissions |= unix.O_DIRECT + f, err := os.OpenFile(driveConf.DevPath, permissions, 0) if err != nil { return fmt.Errorf("Failed opening file descriptor for disk device %q: %w", driveConf.DevName, err)
pkgs/by-name/in/incus/58eeb4eeee8a9e7f9fa9c62443d00f0ec6797078.patch 0 → 100644 +33 −0 Original line number Diff line number Diff line From 58eeb4eeee8a9e7f9fa9c62443d00f0ec6797078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@stgraber.org> Date: Fri, 6 Sep 2024 17:10:01 -0400 Subject: [PATCH] incusd/instance/qemu: Force threads I/O mode for unsafe/writeback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The default "native" aioMode requires direct I/O which is incompatible with unsafe/writeback. Signed-off-by: Stéphane Graber <stgraber@stgraber.org> --- internal/server/instance/drivers/driver_qemu.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/server/instance/drivers/driver_qemu.go b/internal/server/instance/drivers/driver_qemu.go index 9609b73c1b..a5a4944d40 100644 --- a/internal/server/instance/drivers/driver_qemu.go +++ b/internal/server/instance/drivers/driver_qemu.go @@ -4088,9 +4088,11 @@ func (d *qemu) addDriveConfig(qemuDev map[string]string, bootIndexes map[string] noFlushCache := false // Don't ignore any flush requests for the device. if cacheMode == "unsafe" { + aioMode = "threads" directCache = false noFlushCache = true } else if cacheMode == "writeback" { + aioMode = "threads" directCache = false }
pkgs/by-name/in/incus/package.nix +9 −4 Original line number Diff line number Diff line import ./generic.nix { hash = "sha256-fWc+qUAFlqMuiDhZzEY99rXHjKq40GPzplSN8ggId9g="; version = "6.4.0"; vendorHash = "sha256-j+ywLnN+/6HvMKOEr1FuXTLxUMX7VtU4eG3GGx3yAOo="; patches = [ ]; hash = "sha256-FdoJI0SUH8KS3Epyw/HejgyhISWGLePsIjYUS2YTBvc="; version = "6.5.0"; vendorHash = "sha256-8e2X7HIy1IEx6p41SHJyq5dNUJ3rRC2maXC4uNaSlnk="; patches = [ # qemu 9.1 compat, remove in 6.6 ./572afb06f66f83ca95efa1b9386fceeaa1c9e11b.patch ./58eeb4eeee8a9e7f9fa9c62443d00f0ec6797078.patch ./0c37b7e3ec65b4d0e166e2127d9f1835320165b8.patch ]; }