[pve-devel] [PATCH qemu-server v3 stable-bookworm 8/8] migration: preserve host_mtu for virtio-net devices

Fiona Ebner f.ebner at proxmox.com
Fri Sep 5 10:54:59 CEST 2025


Am 04.09.25 um 8:11 PM schrieb Thomas Lamprecht:
> Am 04.09.25 um 14:42 schrieb Fiona Ebner:
>> The virtual hardware is generated differently (at least for i440fx
>> machines) when host_mtu is set or not set on the netdev command line
>> [0]. When the MTU is the same value as the default 1500, Proxmox VE
>> did not add a host_mtu parameter. This is problematic for migration
>> where host_mtu is present on one end of the migration, but not on the
>> other [1]. Moreover, the effective setting in the guest (state) will
>> still be the host_mtu from the source side, even if a different value
>> is used for host_mtu on the target instance's commandline. This will
>> not lead to an error loading the migration stream in QEMU, but having
>> a larger host_mtu than the bridge MTU is still problematic for certain
>> network traffic like
>>> iperf3 -c 10.10.10.11 -u -l 2k
>> when host_mtu=9000 and bridge MTU=1500.
>>
>> Pass the values from the source to the target during migration to be
>> able to preserve them.
> 
> Which breaks migration from new to old, which can be fine, but seems
> avoidable given that we got a tunnel that we can query stuff over.

How can we query? The old tunnel only supports very specific commands
like 'quit' and 'resume $vmid'. Note that remote migration using the new
tunnel version is not broken - an old node will just ignore the
additional parameter in the passed-along JSON.

We could do something like

ssh ... qm start 0 --nets-host-mtu

and match for "Unknown option: nets-host-mtu" for detection.

Alternatively, we could bump the pve-manager version and guard adding
the option via the pmxcfs 'version-info' node kv. That mechanism wasn't
super reliable in the past though.

> Maybe we could at least catch the "Unknown option: nets-host-mtu"
> error explicitly and add some context that the target likely just
> needs to be updated to make the migration work.

If we don't want to go for either of the above or if there isn't an
other way to query, I'll go for that?




More information about the pve-devel mailing list