From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 1BBD71FF164 for ; Fri, 20 Jun 2025 15:04:02 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9B695BB7D; Fri, 20 Jun 2025 15:04:30 +0200 (CEST) Date: Fri, 20 Jun 2025 15:03:52 +0200 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Proxmox VE development discussion References: <20250618130209.90649-1-f.ebner@proxmox.com> In-Reply-To: <20250618130209.90649-1-f.ebner@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.16.0 (https://github.com/astroidmail/astroid) Message-Id: <1750424504.srziah3ia8.astroid@yuna.none> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.043 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] partially-applied: [PATCH-SERIES common/qemu-server v2 00/32] preparation for switch to blockdev X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" applied most of the patches, except for 6, 28/29 and 31/32. 6 is dropped altogether, the other 4 can be included in the switch to blockdev to avoid affecting the block graph before that happens. folded in a small fixup for 7/8, and committed the changed expected output for tests. thanks a lot for driving this forward! On June 18, 2025 3:01 pm, Fiona Ebner wrote: > Changes in v2 (I hope I remembered everything, because of the > indentation changes, I couldn't use my usual git range-diff O:)): > > * Rebase + tidy all patches (this is not noted on individual patches). > * Indicate that version guards are for the switch to -blockdev via > comments. > * Fix deleting throttle group, ID string was wrongly quoted. > * For backup restore, only skip dropped keys when parsing drive > property string, rather than allowing all additional properties. > * Order Perl file names in Makefile. > * Add patch to drop superfluous fallack for migration type. > * For templates, keep using minimized config for timeout calculation. > * Also support unix socket NBD paths. > * Coerce some more strings by quoting for JSON, just to be sure. > * Introduce json_bool() helper. > The following (i.e. patches 19/32 to 24/32) are orthogonal: > * Add patches for PCI module improvements. > * Never reserve PCI usage for 'qm showcmd', add dedicated test for > checking that reservation is respected. > > This is a preparatory series for the switch to -blockdev with Proxmox > VE 9, QEMU machine version 10.0, based in part on Alexandre's series > here [0]. > > While the last patch actually does the switch, many operations are not > yet supported. It is included to show what changes I made there. It > should not yet be applied and supporting everything is the goal for a > following series based on the rest of Alexandre's patches. It was time > to send this however, as it's already gotten large enough (but most > patches are quite small, so don't worry reviewers ;)). > > There are mostly cleanups, moving and defining helpers, as well as > doing non-intrusive preparation for the switch with machine version > 10.0. Quite a large chunk of the series is for having > activate_volumes() be called before config_to_command() with proper > cleanup handling. > > A breaking change is the removal of the gone-since-QEMU-3.1 drive > geometry options. It was not possible to even start or backup a VM > with those options set since then. Still, restore of old backups with > such an option is made explicitly supported. > > NOTE: Dependency bump qemu-server -> libpve-common-perl needed. > > [0]: https://lore.proxmox.com/pve-devel/mailman.347.1749728041.395.pve-devel@lists.proxmox.com/T/ > > > common: > > Fiona Ebner (2): > schema: parse property string: support skipping keys > json schema: add helper to convert to JSON boolean > > src/PVE/JSONSchema.pm | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > > qemu-server: > > Alexandre Derumier via pve-devel (1): > vm devices list: prepare querying block device names for -blockdev > > Fiona Ebner (29): > buildsys: order Perl source files in QemuServer/Makefile > drive: code cleanup: drop unused $vmid parameter from > get_path_and_format() > cfg2cmd: require at least QEMU binary version 6.0 > drive: parse: use hash argument for optional parameters > drive: parse: properly handle dropped properties for restore > drive: remove geometry options gone since QEMU 3.1 > clone disk: io uring check: fix call to determine cache direct > drive: move storage_allows_io_uring_default() and > drive_uses_cache_direct() helpers to drive module > drive: introduce aio_cmdline_option() helper > drive: introduce detect_zeroes_cmdline_option() helper > vm start: assert that migration type is set for 'tcp' migration > introduce StateFile module for state file related helpers > vm start: move state file handling to dedicated module > vm start: move config_to_command() call further down > vm start/commandline: also clean up pci reservation when > config_to_command() fails > vm start/commandline: activate volumes before config_to_command() > pci: add missing includes > test: add tests for PCI reservations > cfg2cmd: print vga: fix call to print_pcie_addr() > pci: code cleanup: remove superfluous machine type paramater from > print_pci_addr > cfg2cmd: collect optional parameters as a hash > qm: showcmd: never reserve PCI devices > print drive device: explicitly set write-cache starting with machine > version 10.0 > print drive device: set {r,w}error front-end properties starting with > machine version 10.0 > print drive device: don't reference any drive for 'none' starting with > machine version 10.0 > drive: create a throttle group for each drive starting with machine > version 10.0 > blockdev: add helpers to generate blockdev commandline > blockdev: add support for NBD paths > command line: switch to blockdev starting with machine version 10.0 > > src/PVE/API2/Qemu.pm | 15 +- > src/PVE/QemuServer.pm | 605 +++++++++--------- > src/PVE/QemuServer/Blockdev.pm | 234 +++++++ > src/PVE/QemuServer/Drive.pm | 108 +++- > src/PVE/QemuServer/Makefile | 26 +- > src/PVE/QemuServer/PCI.pm | 30 +- > src/PVE/QemuServer/RNG.pm | 4 +- > src/PVE/QemuServer/StateFile.pm | 79 +++ > src/PVE/QemuServer/USB.pm | 8 +- > src/test/Makefile | 5 +- > src/test/cfg2cmd/aio.conf.cmd | 16 +- > src/test/cfg2cmd/old-qemu.conf | 4 +- > .../q35-linux-hostpci-mapping.conf.cmd | 2 +- > src/test/run_config2command_tests.pl | 24 +- > src/test/run_pci_reservation_tests.pl | 175 +++++ > 15 files changed, 950 insertions(+), 385 deletions(-) > create mode 100644 src/PVE/QemuServer/Blockdev.pm > create mode 100644 src/PVE/QemuServer/StateFile.pm > create mode 100755 src/test/run_pci_reservation_tests.pl > > > Summary over all repositories: > 16 files changed, 960 insertions(+), 386 deletions(-) > > -- > Generated by git-murpp 0.5.0 > > > _______________________________________________ > pve-devel mailing list > pve-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel > > > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel