From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id E8AA01FF146 for ; Tue, 23 Jun 2026 16:06:51 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 0486F15B0; Tue, 23 Jun 2026 16:06:50 +0200 (CEST) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Tue, 23 Jun 2026 16:06:43 +0200 Message-Id: Subject: Re: [PATCH manager v3] fix #4503: ui: qemu: add detect zeroes disk option From: "Lukas Sichert" To: "Daniel Kral" , "David Riley" , References: <20260618115005.45266-1-l.sichert@proxmox.com> <7a2d0777-1fb4-4a87-99ed-2c77caa0082b@proxmox.com> In-Reply-To: X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1782223593081 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.220 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [gitlab.com,drive.pm,qemu.org,proxmox.com] Message-ID-Hash: CFGXMHX7JD6QLXYX7Q4PJRDHMTG4KDO4 X-Message-ID-Hash: CFGXMHX7JD6QLXYX7Q4PJRDHMTG4KDO4 X-MailFrom: l.sichert@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On 2026-06-22 10:51, Daniel Kral wrote: > On Fri Jun 19, 2026 at 1:01 PM CEST, David Riley wrote: >> On 6/18/26 1:49 PM, Lukas Sichert wrote: >>> When discard is enabled, qemu-server defaults to 'detect-zeroes=3Dunmap= '. >>> 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 enable= d >>> 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=3Dunmap' 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". > > This would need adapting the detect_zeroes option and parsing logic > (it's only boolean right now) so it can take any of the 3 valid values > by QEMU and be backwards compatible to the old values in our config. > > This should probably also check the constraint that detect-zeroes=3Dunmap > can only be set if discard=3Dunmap, but the error message seems already b= e > quite clear for that [0]. Already in src/PVE/QemuServer/Drive.pm in the qemu-server repo, this is checked and set accordingly. Since detect-zeroes=3Dunmap is essentially an extension of detect-zeroes=3Don [1], and detect-zeroes=3Dunmap is currently the default when discard is enabled, I would keep this patch as is to preserve backward compatibility. [1]: https://www.qemu.org/docs/master/interop/qemu-storage-daemon-qmp-ref.h= tml#enum-QSD-block-core.BlockdevDetectZeroesOptions > [0] https://gitlab.com/qemu-project/qemu/-/blob/master/block.c?ref_type= =3Dheads#L1120 > >> >> [0] https://bugzilla.proxmox.com/show_bug.cgi?id=3D4503 >> [1] https://bugzilla.proxmox.com/show_bug.cgi?id=3D4503#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=3D4503 >>> Signed-off-by: Lukas Sichert >>> --- >>> >>> Notes: >>> changes from v2 to v3 (thanks @Fabian): >>> - add a comment explaining why this property is handled differentl= y from >>> the others >>> =20 >>> 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(+) >>> >>> [...] >>>