[pve-devel] [PATCH qemu-server v3 07/10] pci: set 'enable-migration' to on for live-migration marked mapped devices
Dominik Csapak
d.csapak at proxmox.com
Wed Jun 5 10:51:10 CEST 2024
On 5/31/24 14:56, Fiona Ebner wrote:
> Am 19.04.24 um 14:45 schrieb Dominik Csapak:
>> 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.
>>
>> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
>> ---
>> PVE/QemuServer/PCI.pm | 9 ++++++++-
>> 1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/PVE/QemuServer/PCI.pm b/PVE/QemuServer/PCI.pm
>> index 6ba43ee8..df2ea3eb 100644
>> --- a/PVE/QemuServer/PCI.pm
>> +++ b/PVE/QemuServer/PCI.pm
>> @@ -435,8 +435,11 @@ sub parse_hostpci {
>> my $devices = PVE::Mapping::PCI::get_node_mapping($config, $mapping, $node);
>> die "PCI device mapping not found for '$mapping'\n" if !$devices || !scalar($devices->@*);
>>
>> + my $cfg = $config->{ids}->{$mapping};
>> + $res->{'live-migration-capable'} = 1 if $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, $cfg) };
>
>
> This hunk belongs in patch 03/10)
why though?
in 03/10 i adapt to the new $cfg parameter to check the mdev parameter,
and here i refactor it because we have to access it twice
(for the live-migration-capable flag)
i mean i can pull it out into the $cfg before, but the the live-migration
part does IMO not belong in 03/10
>
>> die "PCI device mapping invalid (hardware probably changed): $@\n" if $@;
>> push $alternatives->@*, [split(/;/, $device->{path})];
>> }
>> @@ -635,6 +638,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}";
>>
More information about the pve-devel
mailing list