* [PATCH manager v3] fix #4503: ui: qemu: add detect zeroes disk option
@ 2026-06-18 11:49 Lukas Sichert
2026-06-19 11:01 ` David Riley
0 siblings, 1 reply; 2+ messages in thread
From: Lukas Sichert @ 2026-06-18 11:49 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.
Allow configuring the option independently so 'discard' can stay enabled
while zero detection is disabled. Persist the checkbox state explicitly,
as the backend treats an absent value as default-enabled behavior,
resulting in 'detect-zeroes=unmap' when 'discard' is enabled.
Link: https://bugzilla.proxmox.com/show_bug.cgi?id=4503
Signed-off-by: Lukas Sichert <l.sichert@proxmox.com>
---
Notes:
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:
- added bug-numer to commit header
- appended bug-link to commit body
www/manager6/qemu/HDEdit.js | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/www/manager6/qemu/HDEdit.js b/www/manager6/qemu/HDEdit.js
index 1bb2bfda..2708d452 100644
--- a/www/manager6/qemu/HDEdit.js
+++ b/www/manager6/qemu/HDEdit.js
@@ -96,6 +96,9 @@ 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');
+ // persist an explicit false value, since the backend defaults to enabled
+ // when the option is omitted.
+ me.drive.detect_zeroes = values.detect_zeroes ? 1 : 0;
['mbps_rd', 'mbps_wr', 'iops_rd', 'iops_wr'].forEach((name) => {
let burst_name = `${name}_max`;
@@ -152,6 +155,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 +321,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] 2+ messages in thread* Re: [PATCH manager v3] fix #4503: ui: qemu: add detect zeroes disk option
2026-06-18 11:49 [PATCH manager v3] fix #4503: ui: qemu: add detect zeroes disk option Lukas Sichert
@ 2026-06-19 11:01 ` David Riley
0 siblings, 0 replies; 2+ messages in thread
From: David Riley @ 2026-06-19 11:01 UTC (permalink / raw)
To: Lukas Sichert, pve-devel
On 6/18/26 1:49 PM, Lukas Sichert wrote:
> 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.
>
> Allow configuring the option independently so 'discard' can stay enabled
> while zero detection is disabled. Persist the checkbox state explicitly,
> as the backend treats an absent value as default-enabled behavior,
> resulting in 'detect-zeroes=unmap' when 'discard' is enabled.
Thanks for submitting this patch.
While it clearly addresses the performance issues reported in #4503
[0], I was reading through the Bugzilla thread and noticed a request
to support the third QEMU state for detect_zeroes [1]. Currently, the
underlying parameter supports off, on, and unmap [2].
Since we are already modifying this configuration in the UI, it might
make sense to fully expose all three options to the user rather than
just a binary toggle as there is a difference between "on" and
"unmap".
[0] https://bugzilla.proxmox.com/show_bug.cgi?id=4503
[1] https://bugzilla.proxmox.com/show_bug.cgi?id=4503#c8
[2] https://www.qemu.org/docs/master/interop/qemu-storage-daemon-qmp-ref.html#enum-QSD-block-core.BlockdevDetectZeroesOptions
> Link: https://bugzilla.proxmox.com/show_bug.cgi?id=4503
> Signed-off-by: Lukas Sichert <l.sichert@proxmox.com>
> ---
>
> Notes:
> 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:
> - added bug-numer to commit header
> - appended bug-link to commit body
>
> www/manager6/qemu/HDEdit.js | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> [...]
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-19 11:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-18 11:49 [PATCH manager v3] fix #4503: ui: qemu: add detect zeroes disk option Lukas Sichert
2026-06-19 11:01 ` David Riley
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox