public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH guest-common/qemu-server/manager/docs v4] implement experimental vgpu live migration
@ 2024-06-06  9:21 Dominik Csapak
  2024-06-06  9:21 ` [pve-devel] [PATCH guest-common v4 1/6] mapping: pci: assert_valid: rename cfg to mapping Dominik Csapak
                   ` (25 more replies)
  0 siblings, 26 replies; 35+ messages in thread
From: Dominik Csapak @ 2024-06-06  9:21 UTC (permalink / raw)
  To: pve-devel

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)

guest-common 6/6 is optional and breaks qemu-server versions without
qemu-server patches 1&2

guest-common 1-4; qemu-server 1-6; pve-manager 1,2
are preparations/cleanups mostly and could be applied independently


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)


pve-guest-common:

Dominik Csapak (6):
  mapping: pci: assert_valid: rename cfg to mapping
  mapping: pci: assert_valid: reword error messages
  mapping: pci: make sure all desired properties are checked
  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 | 60 ++++++++++++++++++++++++------------------
 src/PVE/Mapping/USB.pm | 10 -------
 2 files changed, 34 insertions(+), 36 deletions(-)

qemu-server:

Dominik Csapak (12):
  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
  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                | 38 +++++++++++-----------
 PVE/QemuServer/PCI.pm            | 14 ++++++--
 PVE/QemuServer/USB.pm            |  5 ++-
 test/MigrationTest/Shared.pm     |  3 ++
 test/run_config2command_tests.pl |  2 +-
 8 files changed, 104 insertions(+), 59 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 | 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


^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2024-08-14 14:15 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-06  9:21 [pve-devel] [PATCH guest-common/qemu-server/manager/docs v4] implement experimental vgpu live migration Dominik Csapak
2024-06-06  9:21 ` [pve-devel] [PATCH guest-common v4 1/6] mapping: pci: assert_valid: rename cfg to mapping Dominik Csapak
2024-07-05  8:22   ` [pve-devel] applied: " Thomas Lamprecht
2024-06-06  9:21 ` [pve-devel] [PATCH guest-common v4 2/6] mapping: pci: assert_valid: reword error messages Dominik Csapak
2024-07-05  8:22   ` [pve-devel] applied: " Thomas Lamprecht
2024-06-06  9:21 ` [pve-devel] [PATCH guest-common v4 3/6] mapping: pci: make sure all desired properties are checked Dominik Csapak
2024-07-05  8:22   ` [pve-devel] applied: " Thomas Lamprecht
2024-06-06  9:21 ` [pve-devel] [PATCH guest-common v4 4/6] mapping: pci: check the mdev configuration on the device too Dominik Csapak
2024-07-05  8:33   ` Thomas Lamprecht
2024-06-06  9:22 ` [pve-devel] [PATCH guest-common v4 5/6] mapping: pci: add 'live-migration-capable' flag to mappings Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH guest-common v4 6/6] mapping: remove find_on_current_node Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 01/12] usb: mapping: move implementation of find_on_current_node here Dominik Csapak
2024-07-04 11:29   ` Thomas Lamprecht
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 02/12] pci: " Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 03/12] pci: mapping: check mdev config against hardware Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 04/12] stop cleanup: remove unnecessary tpmstate cleanup Dominik Csapak
2024-07-05  8:36   ` [pve-devel] applied: " Thomas Lamprecht
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 05/12] vm_stop_cleanup: add noerr parameter Dominik Csapak
2024-07-04 12:24   ` Thomas Lamprecht
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 06/12] migrate: call vm_stop_cleanup after stopping in phase3_cleanup Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 07/12] pci: set 'enable-migration' to on for live-migration marked mapped devices Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 08/12] check_local_resources: add more info per mapped device and return as hash Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 09/12] api: enable live migration for marked mapped pci devices Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 10/12] api: include not mapped resources for running vms in migrate preconditions Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 11/12] tests: cfg2cmd: fix mdev tests Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH qemu-server v4 12/12] migration: show vfio state transferred too Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH manager v4 1/5] mapping: pci: include mdev in config checks Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH manager v4 2/5] bulk migrate: improve precondition checks Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH manager v4 3/5] bulk migrate: include checks for live-migratable local resources Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH manager v4 4/5] ui: adapt migration window to precondition api change Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH manager v4 5/5] fix #5175: ui: allow configuring and live migration of mapped pci resources Dominik Csapak
2024-06-06  9:22 ` [pve-devel] [PATCH docs v4 1/2] qm: resource mapping: add description for `mdev` option Dominik Csapak
2024-08-14 14:14   ` Alexander Zeidler
2024-06-06  9:22 ` [pve-devel] [PATCH docs v4 2/2] qm: resource mapping: document `live-migration-capable` setting Dominik Csapak
2024-07-05  9:00 ` [pve-devel] [PATCH guest-common/qemu-server/manager/docs v4] implement experimental vgpu live migration Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal