all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH manager v4 0/3] fix #4503: add configurable detect-zeroes disk option
@ 2026-08-17 14:23 Lukas Sichert
  2026-08-17 14:23 ` [PATCH manager v4 1/3] ui: utils: support true defaults in propertyStringSet Lukas Sichert
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Lukas Sichert @ 2026-08-17 14:23 UTC (permalink / raw)
  To: pve-devel; +Cc: Lukas Sichert

When discard is enabled, qemu-server defaults to detect-zeroes=unmap,
which can negatively affect zero-write performance on some storage
setups.

This series allows users to disable zero detection while keeping guest
discard/TRIM support enabled. The first patch extends
propertyStringSet() to support properties which default to true. The
second patch converts the existing backup option to use this handling.
The final patch adds the detect-zeroes option to the disk editor.

Buglink: https://bugzilla.proxmox.com/show_bug.cgi?id=4503

changes from v3 to v4 (thanks @Fiona):
- split the change into a three-patch series
- extend propertyStringSet() to support properties
  which default to true
- use the new handling for the existing backup property
- omit detect_zeroes when enabled and only serialize detect_zeroes=0
  when explicitly disabled

changes from v2 to v3 (thanks @Fabian):
- add a comment explaining why this property is handled differently from
  the others

changes from v1 to v2:
- add the bug number to the commit header
- append the buglink to the commit body


manager:

Lukas Sichert (3):
  ui: utils: support true defaults in propertyStringSet
  ui: qemu: refactor backup property handling
  fix #4503: ui: qemu: add detect zeroes disk option

 www/manager6/Utils.js       |  4 ++--
 www/manager6/qemu/HDEdit.js | 10 +++++++++-
 2 files changed, 11 insertions(+), 3 deletions(-)


Summary over all repositories:
  2 files changed, 11 insertions(+), 3 deletions(-)

-- 
Generated by murpp 0.12.0




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

* [PATCH manager v4 1/3] ui: utils: support true defaults in propertyStringSet
  2026-08-17 14:23 [PATCH manager v4 0/3] fix #4503: add configurable detect-zeroes disk option Lukas Sichert
@ 2026-08-17 14:23 ` Lukas Sichert
  2026-08-17 14:23 ` [PATCH manager v4 2/3] ui: qemu: refactor backup property handling Lukas Sichert
  2026-08-17 14:23 ` [PATCH manager v4 3/3] fix #4503: ui: qemu: add detect zeroes disk option Lukas Sichert
  2 siblings, 0 replies; 4+ messages in thread
From: Lukas Sichert @ 2026-08-17 14:23 UTC (permalink / raw)
  To: pve-devel; +Cc: Lukas Sichert

Allow callers to specify that a property defaults to true. This is
useful for options where only explicitly disabling the default behavior
needs to be written to the property string.

Signed-off-by: Lukas Sichert <l.sichert@proxmox.com>
---
 www/manager6/Utils.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index c86a00c5..cb70965d 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -1929,8 +1929,8 @@ Ext.define('PVE.Utils', {
             );
         },
 
-        propertyStringSet: function (target, source, name, value) {
-            if (source) {
+        propertyStringSet: function (target, source, name, value, defaultIsTrue) {
+            if (defaultIsTrue ? !source : source) {
                 if (value === undefined) {
                     target[name] = source;
                 } else {
-- 
2.47.3





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

* [PATCH manager v4 2/3] ui: qemu: refactor backup property handling
  2026-08-17 14:23 [PATCH manager v4 0/3] fix #4503: add configurable detect-zeroes disk option Lukas Sichert
  2026-08-17 14:23 ` [PATCH manager v4 1/3] ui: utils: support true defaults in propertyStringSet Lukas Sichert
@ 2026-08-17 14:23 ` Lukas Sichert
  2026-08-17 14:23 ` [PATCH manager v4 3/3] fix #4503: ui: qemu: add detect zeroes disk option Lukas Sichert
  2 siblings, 0 replies; 4+ messages in thread
From: Lukas Sichert @ 2026-08-17 14:23 UTC (permalink / raw)
  To: pve-devel; +Cc: Lukas Sichert

Use the previously added true-default handling to avoid manually
inverting the backup value.

Signed-off-by: Lukas Sichert <l.sichert@proxmox.com>
---
 www/manager6/qemu/HDEdit.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/www/manager6/qemu/HDEdit.js b/www/manager6/qemu/HDEdit.js
index 1bb2bfda..3ac40f42 100644
--- a/www/manager6/qemu/HDEdit.js
+++ b/www/manager6/qemu/HDEdit.js
@@ -88,7 +88,7 @@ Ext.define('PVE.qemu.HDInputPanel', {
             me.drive.format = values.diskformat;
         }
 
-        PVE.Utils.propertyStringSet(me.drive, !values.backup, 'backup', '0');
+        PVE.Utils.propertyStringSet(me.drive, values.backup, 'backup', '0', true);
         PVE.Utils.propertyStringSet(me.drive, values.noreplicate, 'replicate', 'no');
         PVE.Utils.propertyStringSet(me.drive, values.discard, 'discard', 'on');
         PVE.Utils.propertyStringSet(me.drive, values.ssd, 'ssd', 'on');
-- 
2.47.3





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

* [PATCH manager v4 3/3] fix #4503: ui: qemu: add detect zeroes disk option
  2026-08-17 14:23 [PATCH manager v4 0/3] fix #4503: add configurable detect-zeroes disk option Lukas Sichert
  2026-08-17 14:23 ` [PATCH manager v4 1/3] ui: utils: support true defaults in propertyStringSet Lukas Sichert
  2026-08-17 14:23 ` [PATCH manager v4 2/3] ui: qemu: refactor backup property handling Lukas Sichert
@ 2026-08-17 14:23 ` Lukas Sichert
  2 siblings, 0 replies; 4+ messages in thread
From: Lukas Sichert @ 2026-08-17 14:23 UTC (permalink / raw)
  To: pve-devel; +Cc: Lukas Sichert

When discard is enabled, qemu-server defaults to 'detect-zeroes=unmap'.
This can have a significant performance impact for zero writes on some
setups, while users might still want to keep guest discard/TRIM support
enabled.

Expose the option in the disk editor and default it to enabled to match
the backend behavior. Use the true-default property serialization added
previously so that disabling it explicitly writes 'detect_zeroes=0',
while enabling it omits the property.

Link: https://bugzilla.proxmox.com/show_bug.cgi?id=4503
Signed-off-by: Lukas Sichert <l.sichert@proxmox.com>
---
 www/manager6/qemu/HDEdit.js | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/www/manager6/qemu/HDEdit.js b/www/manager6/qemu/HDEdit.js
index 3ac40f42..9aae91b2 100644
--- a/www/manager6/qemu/HDEdit.js
+++ b/www/manager6/qemu/HDEdit.js
@@ -96,6 +96,7 @@ Ext.define('PVE.qemu.HDInputPanel', {
         PVE.Utils.propertyStringSet(me.drive, values.readOnly, 'ro', 'on');
         PVE.Utils.propertyStringSet(me.drive, values.cache, 'cache');
         PVE.Utils.propertyStringSet(me.drive, values.aio, 'aio');
+        PVE.Utils.propertyStringSet(me.drive, values.detect_zeroes, 'detect_zeroes', '0', true);
 
         ['mbps_rd', 'mbps_wr', 'iops_rd', 'iops_wr'].forEach((name) => {
             let burst_name = `${name}_max`;
@@ -152,6 +153,7 @@ Ext.define('PVE.qemu.HDInputPanel', {
         values.diskformat = drive.format || 'raw';
         values.cache = drive.cache || '__default__';
         values.discard = drive.discard === 'on';
+        values.detect_zeroes = PVE.Parser.parseBoolean(drive.detect_zeroes, 1);
         values.ssd = PVE.Parser.parseBoolean(drive.ssd);
         values.iothread = PVE.Parser.parseBoolean(drive.iothread);
         values.readOnly = PVE.Parser.parseBoolean(drive.ro);
@@ -317,6 +319,12 @@ Ext.define('PVE.qemu.HDInputPanel', {
                 reference: 'discard',
                 name: 'discard',
             },
+            {
+                xtype: 'proxmoxcheckbox',
+                fieldLabel: gettext('Detect zeroes'),
+                reference: 'detect_zeroes',
+                name: 'detect_zeroes',
+            },
             {
                 xtype: 'proxmoxcheckbox',
                 name: 'iothread',
-- 
2.47.3





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

end of thread, other threads:[~2026-08-17 14:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-17 14:23 [PATCH manager v4 0/3] fix #4503: add configurable detect-zeroes disk option Lukas Sichert
2026-08-17 14:23 ` [PATCH manager v4 1/3] ui: utils: support true defaults in propertyStringSet Lukas Sichert
2026-08-17 14:23 ` [PATCH manager v4 2/3] ui: qemu: refactor backup property handling Lukas Sichert
2026-08-17 14:23 ` [PATCH manager v4 3/3] fix #4503: ui: qemu: add detect zeroes disk option Lukas Sichert

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal