From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 3D22E1FF183 for <inbox@lore.proxmox.com>; Wed, 18 Jun 2025 15:04:55 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id B4B6312AEC; Wed, 18 Jun 2025 15:02:49 +0200 (CEST) From: Fiona Ebner <f.ebner@proxmox.com> To: pve-devel@lists.proxmox.com Date: Wed, 18 Jun 2025 15:01:37 +0200 Message-Id: <20250618130209.90649-1-f.ebner@proxmox.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.033 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 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [blockdev.pm, usb.pm, qemuserver.pm, proxmox.com, qemu.pm, rng.pm, drive.pm, jsonschema.pm, statefile.pm, pci.pm] Subject: [pve-devel] [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 <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> 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