From: Fiona Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH qemu-server 3/4] drive commandline: factor out determining direct cache usage into helper
Date: Fri, 10 Feb 2023 15:19:11 +0100 [thread overview]
Message-ID: <20230210141912.108195-3-f.ebner@proxmox.com> (raw)
In-Reply-To: <20230210141912.108195-1-f.ebner@proxmox.com>
In preparation to re-use it for a check for live disk cloning.
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---
PVE/QemuServer.pm | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 10d29a06..d4b1a984 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -1615,6 +1615,20 @@ my sub storage_allows_io_uring_default {
return 1;
}
+my sub drive_uses_cache_direct {
+ my ($drive, $scfg) = @_;
+
+ my $cache_direct = 0;
+
+ if (my $cache = $drive->{cache}) {
+ $cache_direct = $cache =~ /^(?:off|none|directsync)$/;
+ } elsif (!drive_is_cdrom($drive) && !($scfg && $scfg->{type} eq 'btrfs' && !$scfg->{nocow})) {
+ $cache_direct = 1;
+ }
+
+ return $cache_direct;
+}
+
sub print_drive_commandline_full {
my ($storecfg, $vmid, $drive, $pbs_name, $io_uring) = @_;
@@ -1688,14 +1702,9 @@ sub print_drive_commandline_full {
$opts .= ",format=$format";
}
- my $cache_direct = 0;
+ my $cache_direct = drive_uses_cache_direct($drive, $scfg);
- if (my $cache = $drive->{cache}) {
- $cache_direct = $cache =~ /^(?:off|none|directsync)$/;
- } elsif (!drive_is_cdrom($drive) && !($scfg && $scfg->{type} eq 'btrfs' && !$scfg->{nocow})) {
- $opts .= ",cache=none";
- $cache_direct = 1;
- }
+ $opts .= ",cache=none" if !$drive->{cache} && $cache_direct;
if (!$drive->{aio}) {
if ($io_uring && storage_allows_io_uring_default($scfg, $cache_direct)) {
--
2.30.2
next prev parent reply other threads:[~2023-02-10 14:19 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-10 14:19 [pve-devel] [PATCH qemu-server 1/4] hotplug: disk: mark aio as non-hotpluggable Fiona Ebner
2023-02-10 14:19 ` [pve-devel] [PATCH qemu-server 2/4] drive commandline: factor out checks if io_uring is allowed by default Fiona Ebner
2023-02-10 14:19 ` Fiona Ebner [this message]
2023-02-10 14:19 ` [pve-devel] [PATCH qemu-server 4/4] fix #4525: clone disk: disallow mirror if it might cause problems with io_uring Fiona Ebner
2023-02-14 9:12 ` [pve-devel] applied-series: Re: [PATCH qemu-server 1/4] hotplug: disk: mark aio as non-hotpluggable Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230210141912.108195-3-f.ebner@proxmox.com \
--to=f.ebner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox