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-de...@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