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 601D91FF16E for <inbox@lore.proxmox.com>; Mon, 20 Jan 2025 15:52:27 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 347FA1DEED; Mon, 20 Jan 2025 15:52:10 +0100 (CET) From: Dominik Csapak <d.csapak@proxmox.com> To: pve-devel@lists.proxmox.com Date: Mon, 20 Jan 2025 15:51:42 +0100 Message-Id: <20250120145203.282363-1-d.csapak@proxmox.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.019 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 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] [PATCH guest-common/qemu-server/manager/docs v5 0/3] implement experimental vgpu live migration 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> and some useful cleanups 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) should mostly be the same as v4 functionality/code-wise but still a bit changed due to the recent nvidia changes from our side, so probably warrants a bit of a closer look in any case changes from v4: * rebased on master (some work due to the recent nvidia changes) * incorporated thomas/alexanders feedback from v4 changes from v3: * rebased on master * split first guest-common patch into 3 * instead of merging keys, just write all expected keys in to expected_props * made $cfg optional so it does not break callers that don't call it * added patch to fix the cfg2cmd tests for mdev check * added patch to show vfio state transferred for migration * incorporated fionas feedback (mostly minor stuff) for more details see the individual patches changes from v2: * rebased on master * rework the rework of the properties check (pve-guest-common 1/4) * properly check mdev in the gui (pve-manager 1/5) manager patches depend on pve-guest-common/qemu-server patches qemu-server depends on pve-guest-common patches guest-common 3/3 breaks older qemu-server version before applying qemu-server patches 1&2 pve-guest-common: Dominik Csapak (3): 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 | 27 +++++++++++++++------------ src/PVE/Mapping/USB.pm | 10 ---------- 2 files changed, 15 insertions(+), 22 deletions(-) qemu-server: Dominik Csapak (11): 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 vm stop-cleanup: allow callers to decide error behavior 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 tests: cfg2cmd: fix mdev tests migration: show vfio state transferred too PVE/API2/Qemu.pm | 55 ++++++++++++++++++++------------ PVE/CLI/qm.pm | 2 +- PVE/QemuMigrate.pm | 44 +++++++++++++++++-------- PVE/QemuServer.pm | 30 ++++++++++------- PVE/QemuServer/PCI.pm | 24 ++++++++++++-- PVE/QemuServer/USB.pm | 17 ++++++++-- test/MigrationTest/Shared.pm | 3 ++ test/run_config2command_tests.pl | 2 +- 8 files changed, 123 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 | 6 ++++ www/manager6/window/Migrate.js | 51 ++++++++++++++++++++----------- www/manager6/window/PCIMapEdit.js | 12 ++++++++ 5 files changed, 76 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 | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel