From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id D308A1FF0B2 for ; Thu, 20 Aug 2026 13:36:28 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id D6EC221575; Thu, 20 Aug 2026 13:36:25 +0200 (CEST) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Thu, 20 Aug 2026 13:36:20 +0200 Message-Id: Subject: Re: [PATCH v3 pve-qemu qemu-server 0/6] bypass host page cache for restore on zvol From: "Lukas Sichert" To: "Christian Ebner" , References: <20260820090528.117853-1-c.ebner@proxmox.com> In-Reply-To: <20260820090528.117853-1-c.ebner@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1787225755970 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.671 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: D7ZNB6APPV6LUMYPAGJ3FVK3CHZVJ2WM X-Message-ID-Hash: D7ZNB6APPV6LUMYPAGJ3FVK3CHZVJ2WM 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-08-20 11:05, Christian Ebner wrote: > This patch series skips writing to the host page cache for restores > to zvols, with the intention to avoid potential I/O delay issues for > other ZFS-backed VMs during page writeback on certain setups, as > reported in enterprise support and reproduced internally. > > This patch series adds an optional no-cache parameter for pbs-restore > command invocation, setting the BDRV_O_NOCACHE flag for the block > device being restored to and sets `cache=3Dnone` for vma restores. > > Since this seems to affect only zvol's, conditionally set the flag only > during restores to storages with type `zfspool`. Tested this on a PVE VM whose disk is backed by ZFS, with another VM acting as PBS. Inside the PVE VM, I created a Linux VM with a 200 GB disk and wrote 150 GB of data to it. I also installed a Windows Server 2026 VM alongside the inner PVE VM. During restore, the Dirty and Writeback page cache values from /proc/meminfo, as reported by the outer PVE VM, were in the 1-4.5 GB range. ioping reported delays of up to 10 seconds. The Windows VM stalled; while I was still able to drag windows around, it was not possible to open any new applications. After applying the patch, the host page cache values did not increase when starting a restore and remained basically at zero, with at most 100 KB. The Windows VM was still very slow, but during restore it was eventually able to open applications. The ioping issue was also resolved. One nit: I already mentioned in [1] that extending the version check regex to allow suffixes would be nice. The regex in [1] only allows suffixes starting with +, but Debian Policy [2], Section 5.6.12.2, also mentions ~. Therefore, something like the following regex might be better: my $package_version_re =3D qr/\(pve-qemu-kvm_(\d+\.\d+(\.\d+)?-\d+)([+~][a-= zA-Z0-9~]+)?\)/; But since this works as advertized, consider: Tested-by: Lukas Sichert If no bigger changes are made, feel free to use my Tested-by in a future ve= rsion. [1] https://lore.proxmox.com/all/DKTOJDG9FQ00.31RUAI1TR35Y2@proxmox.com/T/#= m38e4cd2377a01db1d090c946122b90f9e7f8ded1 [2] https://www.debian.org/doc/debian-policy/policy.pdf