and some useful cleanups this series replaces both the initial pci live migration and the fixup series[0][1]
This is implemented for mapped resources. This requires driver and hardware support, but aside from nvidia vgpus there don't seem to be many drivers (if any) that do support that. qemu already supports that for vfio-pci devices, so nothing to be done there besides actively enabling it. Since we currently can't properly test it here and very much depends on hardware/driver support, mark it as experimental everywhere (docs/api/gui). (though i tested the live-migration part manually here by using "exec:cat > /tmp/test" for the migration target, and "exec: cat /tmp/test" as the 'incoming' parameter for a new vm start, which worked ;) ) i opted for marking them migratable at the mapping level, but we could theoretically also put it in the hostpciX config instead. (though imho it fits better in the cluster-wide resource mapping config) also the naming/texts could probably be improved, but i think 'live-migration-capable' is very descriptive and i didn't want to use an overly short name for it (which can be confusing, see the 'shared' flag for storages) the first 3 patches of guest-common, the first 6 patches of qemu-server and the first 2 of pve-manager, only tangentially relate to the actual title of this series and could be applied independently, since they're mostly cleanups & code move though qemu-server 3/10 and pve-manager 1/5 depend on the pve-guest-common 2-3/5 also pve-manager 4/5 depends on all of qemu-server 0: https://lists.proxmox.com/pipermail/pve-devel/2024-March/062226.html 1: https://lists.proxmox.com/pipermail/pve-devel/2024-March/062293.html pve-guest-common: Dominik Csapak (5): mapping: pci: fix missing description/default for mdev mapping: pci: rework properties check mapping: pci: check the mdev configuration on the device too mapping: pci: add 'live-migration-capable' flag to mappings mapping: remove find_on_current_node src/PVE/Mapping/PCI.pm | 69 ++++++++++++++++++++++++------------------ src/PVE/Mapping/USB.pm | 9 ------ 2 files changed, 40 insertions(+), 38 deletions(-) qemu-server: Dominik Csapak (10): usb: mapping: move implementation of find_on_current_node here pci: mapping: move implementation of find_on_current_node here pci: mapping: check mdev config against hardware stop cleanup: remove unnecessary tpmstate cleanup vm_stop_cleanup: add noerr parameter migrate: call vm_stop_cleanup after stopping in phase3_cleanup pci: set 'enable-migration' to on for live-migration marked mapped devices check_local_resources: add more info per mapped device and return as hash api: enable live migration for marked mapped pci devices api: include not mapped resources for running vms in migrate preconditions PVE/API2/Qemu.pm | 48 ++++++++++++++++++++++-------------- PVE/CLI/qm.pm | 2 +- PVE/QemuMigrate.pm | 28 ++++++++++++--------- PVE/QemuServer.pm | 38 ++++++++++++++-------------- PVE/QemuServer/PCI.pm | 14 +++++++++-- PVE/QemuServer/USB.pm | 5 +++- test/MigrationTest/Shared.pm | 3 +++ 7 files changed, 84 insertions(+), 54 deletions(-) pve-manager: Dominik Csapak (5): mapping: pci: include mdev in config checks bulk migrate: improve precondition checks bulk migrate: include checks for live-migratable local resources ui: adapt migration window to precondition api change fix #5175: ui: allow configuring and live migration of mapped pci resources PVE/API2/Cluster/Mapping/PCI.pm | 2 +- PVE/API2/Nodes.pm | 27 ++++++++++++++-- www/manager6/dc/PCIMapView.js | 5 +++ www/manager6/window/Migrate.js | 51 ++++++++++++++++++++----------- www/manager6/window/PCIMapEdit.js | 12 ++++++++ 5 files changed, 75 insertions(+), 22 deletions(-) pve-docs: Dominik Csapak (2): qm: resource mapping: add description for `mdev` option qm: resource mapping: document `live-migration-capable` setting qm.adoc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel