public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH (guest-)common/qemu-server/manager/docs v6] implement
@ 2025-02-13 13:16 Dominik Csapak
  2025-02-13 13:16 ` [pve-devel] [PATCH common v6 1/1] sysfs tools: add 'nvidia' -> 'mdev' workaround to pci_device_info Dominik Csapak
                   ` (22 more replies)
  0 siblings, 23 replies; 51+ messages in thread
From: Dominik Csapak @ 2025-02-13 13:16 UTC (permalink / raw)
  To: pve-devel

== Summmary ==

Includes some useful cleanups/features

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). (i tested it with a single server with multiple pve
"containers" that each got several virtual functions, so the migration
was actually to the same hardware but via our stack between two
different qemu processes)

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)

== Dependencies ==

qemu-server 1/10 & 2/20 are relatively independent, but needed for the
remaining series.

qemu-server 3/10 and onwards depend on pve-common and pve-guest-common

pve-manager depends on pve-guest-common & pve-common & qemu-server

== Changelog ==

changes from v5:
* rebased on master
* new common patch that was missing last time
* dropped the move of find_on_current_node, since it only makes
  our lives harder and we don't gain much from it.
  -> this also fixed some bugs that were there in v5 due to
  the move.
* reordered some patches, so the dependencies are clearer
* added a patch that adds a state-migration summary for live
  migration (so we can see how much state was actually transferred)
* added missing colon in log output

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)

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-common:

Dominik Csapak (1):
  sysfs tools: add 'nvidia' -> 'mdev' workaround to pci_device_info

 src/PVE/SysFSTools.pm | 4 ++++
 1 file changed, 4 insertions(+)

pve-guest-common:

Dominik Csapak (2):
  mapping: pci: check the mdev configuration on the device too
  mapping: pci: add 'live-migration-capable' flag to mappings

 src/PVE/Mapping/PCI.pm | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

qemu-server:

Dominik Csapak (10):
  vm stop-cleanup: allow callers to decide error behavior
  migrate: call vm_stop_cleanup after stopping in phase3_cleanup
  tests: cfg2cmd: fix mdev tests
  pci: mapping: check mdev config against hardware
  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
  migrate: show vfio state transferred too
  migrate: add transfer summary

 PVE/API2/Qemu.pm                 | 55 ++++++++++++++++++------------
 PVE/CLI/qm.pm                    |  2 +-
 PVE/QemuMigrate.pm               | 58 +++++++++++++++++++++++++-------
 PVE/QemuServer.pm                | 30 ++++++++++-------
 PVE/QemuServer/PCI.pm            | 10 +++++-
 test/MigrationTest/Shared.pm     |  3 ++
 test/run_config2command_tests.pl |  2 +-
 7 files changed, 111 insertions(+), 49 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


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

end of thread, other threads:[~2025-03-11 13:24 UTC | newest]

Thread overview: 51+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-13 13:16 [pve-devel] [PATCH (guest-)common/qemu-server/manager/docs v6] implement Dominik Csapak
2025-02-13 13:16 ` [pve-devel] [PATCH common v6 1/1] sysfs tools: add 'nvidia' -> 'mdev' workaround to pci_device_info Dominik Csapak
2025-03-06 13:00   ` [pve-devel] applied: " Thomas Lamprecht
2025-02-13 13:16 ` [pve-devel] [PATCH guest-common v6 1/2] mapping: pci: check the mdev configuration on the device too Dominik Csapak
2025-03-07 10:52   ` Fiona Ebner
2025-02-13 13:16 ` [pve-devel] [PATCH guest-common v6 2/2] mapping: pci: add 'live-migration-capable' flag to mappings Dominik Csapak
2025-03-07 10:52   ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH qemu-server v6 01/10] vm stop-cleanup: allow callers to decide error behavior Dominik Csapak
2025-03-06 16:42   ` [pve-devel] applied: " Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH qemu-server v6 02/10] migrate: call vm_stop_cleanup after stopping in phase3_cleanup Dominik Csapak
2025-03-06 16:42   ` [pve-devel] applied: " Fiona Ebner
2025-03-07 11:02     ` Dominik Csapak
2025-02-13 13:17 ` [pve-devel] [PATCH qemu-server v6 03/10] tests: cfg2cmd: fix mdev tests Dominik Csapak
2025-03-07 11:20   ` [pve-devel] applied: " Fiona Ebner
2025-03-07 11:54     ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH qemu-server v6 04/10] pci: mapping: check mdev config against hardware Dominik Csapak
2025-03-07 11:20   ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH qemu-server v6 05/10] pci: set 'enable-migration' to on for live-migration marked mapped devices Dominik Csapak
2025-03-07 11:20   ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH qemu-server v6 06/10] check_local_resources: add more info per mapped device and return as hash Dominik Csapak
2025-03-07 11:20   ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH qemu-server v6 07/10] api: enable live migration for marked mapped pci devices Dominik Csapak
2025-03-07 11:20   ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH qemu-server v6 08/10] api: include not mapped resources for running vms in migrate preconditions Dominik Csapak
2025-03-07 12:20   ` Fiona Ebner
2025-03-07 12:56     ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH qemu-server v6 09/10] migrate: show vfio state transferred too Dominik Csapak
2025-03-07 12:35   ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH qemu-server v6 10/10] migrate: add transfer summary Dominik Csapak
2025-03-07 12:35   ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH manager v6 1/5] mapping: pci: include mdev in config checks Dominik Csapak
2025-03-07 13:00   ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH manager v6 2/5] bulk migrate: improve precondition checks Dominik Csapak
2025-03-07 13:19   ` Fiona Ebner
2025-03-07 13:23     ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH manager v6 3/5] bulk migrate: include checks for live-migratable local resources Dominik Csapak
2025-03-07 13:30   ` Fiona Ebner
2025-03-07 13:40     ` Fiona Ebner
2025-03-10 12:52       ` Dominik Csapak
2025-03-10 13:21         ` Fiona Ebner
2025-03-10 13:58           ` Dominik Csapak
2025-03-10 14:40             ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH manager v6 4/5] ui: adapt migration window to precondition api change Dominik Csapak
2025-03-07 14:03   ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH manager v6 5/5] fix #5175: ui: allow configuring and live migration of mapped pci resources Dominik Csapak
2025-03-07 14:33   ` Fiona Ebner
2025-02-13 13:17 ` [pve-devel] [PATCH docs v6 1/2] qm: resource mapping: add description for `mdev` option Dominik Csapak
2025-02-13 13:17 ` [pve-devel] [PATCH docs v6 2/2] qm: resource mapping: document `live-migration-capable` setting Dominik Csapak
2025-02-13 13:30 ` [pve-devel] [PATCH (guest-)common/qemu-server/manager/docs v6] implement Dominik Csapak
2025-03-07 14:39 ` Fiona Ebner
2025-03-11 13:23 ` Dominik Csapak

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