[pve-devel] [PATCH qemu-server v7 3/9] pci: set 'enable-migration' to on for live-migration marked mapped devices

Dominik Csapak d.csapak at proxmox.com
Tue Mar 11 14:20:43 CET 2025


the default is 'auto', but for those which are marked as capable for
live migration, we want to explicitly enable that, so we get an early
error on start if the driver does not support that.

Reviewed-by: Christoph Heiss <c.heiss at proxmox.com>
Reviewed-by: Fiona Ebner <f.ebner at proxmox.com>
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
changes from v6:
* renamed $cfg to $mapping_cfg
* added missing semicolon

 PVE/QemuServer/PCI.pm | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/PVE/QemuServer/PCI.pm b/PVE/QemuServer/PCI.pm
index a0d99692..afb60ad2 100644
--- a/PVE/QemuServer/PCI.pm
+++ b/PVE/QemuServer/PCI.pm
@@ -433,9 +433,11 @@ sub parse_hostpci {
 	die "PCI device mapping not found for '$mapping'\n" if !$devices || !scalar($devices->@*);
 
 	my $config = PVE::Mapping::PCI::config();
+	my $mapping_cfg = $config->{ids}->{$mapping};
+	$res->{'live-migration-capable'} = 1 if $mapping_cfg->{'live-migration-capable'};
 
 	for my $device ($devices->@*) {
-	    eval { PVE::Mapping::PCI::assert_valid($mapping, $device, $config->{ids}->{$mapping}) };
+	    eval { PVE::Mapping::PCI::assert_valid($mapping, $device, $mapping_cfg) };
 	    die "PCI device mapping invalid (hardware probably changed): $@\n" if $@;
 	    push $alternatives->@*, [split(/;/, $device->{path})];
 	}
@@ -692,6 +694,10 @@ sub print_hostpci_devices {
 		$devicestr .= ",host=$pcidevice->{id}";
 	    }
 
+	    if ($d->{'live-migration-capable'}) {
+		$devicestr .= ",enable-migration=on";
+	    }
+
 	    my $mf_addr = $multifunction ? ".$j" : '';
 	    $devicestr .= ",id=${id}${mf_addr}${pciaddr}${mf_addr}";
 
-- 
2.39.5





More information about the pve-devel mailing list