From: Dominik Csapak <d.csapak@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH guest-common/qemu-server/manager/docs v2] implement experimental vgpu live migration
Date: Wed, 10 Apr 2024 13:03:39 +0200 [thread overview]
Message-ID: <20240410110401.2226201-1-d.csapak@proxmox.com> (raw)
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
next reply other threads:[~2024-04-10 11:04 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-10 11:03 Dominik Csapak [this message]
2024-04-10 11:03 ` [pve-devel] [PATCH guest-common v2 1/5] mapping: pci: fix missing description/default for mdev Dominik Csapak
2024-04-11 16:27 ` [pve-devel] applied: " Thomas Lamprecht
2024-04-10 11:03 ` [pve-devel] [PATCH guest-common v2 2/5] mapping: pci: rework properties check Dominik Csapak
2024-04-11 16:49 ` Thomas Lamprecht
2024-04-10 11:03 ` [pve-devel] [PATCH guest-common v2 3/5] mapping: pci: check the mdev configuration on the device too Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH guest-common v2 4/5] mapping: pci: add 'live-migration-capable' flag to mappings Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH guest-common v2 5/5] mapping: remove find_on_current_node Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH qemu-server v2 01/10] usb: mapping: move implementation of find_on_current_node here Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH qemu-server v2 02/10] pci: " Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH qemu-server v2 03/10] pci: mapping: check mdev config against hardware Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH qemu-server v2 04/10] stop cleanup: remove unnecessary tpmstate cleanup Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH qemu-server v2 05/10] vm_stop_cleanup: add noerr parameter Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH qemu-server v2 06/10] migrate: call vm_stop_cleanup after stopping in phase3_cleanup Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH qemu-server v2 07/10] pci: set 'enable-migration' to on for live-migration marked mapped devices Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH qemu-server v2 08/10] check_local_resources: add more info per mapped device and return as hash Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH qemu-server v2 09/10] api: enable live migration for marked mapped pci devices Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH qemu-server v2 10/10] api: include not mapped resources for running vms in migrate preconditions Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH manager v2 1/5] mapping: pci: include mdev in config checks Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH manager v2 2/5] bulk migrate: improve precondition checks Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH manager v2 3/5] bulk migrate: include checks for live-migratable local resources Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH manager v2 4/5] ui: adapt migration window to precondition api change Dominik Csapak
2024-04-10 11:03 ` [pve-devel] [PATCH manager v2 5/5] fix #5175: ui: allow configuring and live migration of mapped pci resources Dominik Csapak
2024-04-10 11:04 ` [pve-devel] [PATCH docs v2 1/2] qm: resource mapping: add description for `mdev` option Dominik Csapak
2024-04-10 11:04 ` [pve-devel] [PATCH docs v2 2/2] qm: resource mapping: document `live-migration-capable` setting Dominik Csapak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240410110401.2226201-1-d.csapak@proxmox.com \
--to=d.csapak@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox