[pve-devel] [PATCH-SERIES qemu-server 0/2] virtio-net: fix migration between default/non-default MTUs, part one

Fiona Ebner f.ebner at proxmox.com
Tue Sep 2 15:44:31 CEST 2025


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]. Migration between command lines where host_mtu is set on
both ends, even if set to different values, works fine.

Always set the host_mtu parameter starting with machine version
10.0+pve1 to avoid this issue going forward. Handling migrations with
older machine versions is more involved and will be done in separate
patches. In particular, the plan is to query whether host_mtu is
present for migration and pass that information along from source to
target. And for snapshots, it might make sense to record the
qemu-server version in the snapshot configuration and base the
decision off that, defaulting to Proxmox VE 8 behavior if no such
information is present, except when the machine version is 10.0+pve0,
defaulting to PVE 9 behavior from before the fixes.

[0]: https://bugzilla.redhat.com/show_bug.cgi?id=1449346
[1]: https://forum.proxmox.com/threads/live-vm-migration-fails.169537/post-796379

Fiona Ebner (2):
  run make tidy
  virtio-net: fix migration between default/non-default MTUs starting
    with machine version 10.0+pve1

 src/PVE/QemuServer.pm                         | 28 +++++++++++++++++--
 src/PVE/QemuServer/Machine.pm                 |  6 ++++
 src/test/cfg2cmd/bootorder-empty.conf.cmd     |  4 +--
 src/test/cfg2cmd/bootorder-legacy.conf.cmd    |  4 +--
 src/test/cfg2cmd/bootorder.conf.cmd           |  4 +--
 src/test/cfg2cmd/efidisk-on-rbd.conf.cmd      |  4 +--
 src/test/cfg2cmd/ide.conf.cmd                 |  4 +--
 .../cfg2cmd/netdev-7.1-multiqueues.conf.cmd   |  2 +-
 src/test/cfg2cmd/netdev-7.1.conf.cmd          |  2 +-
 src/test/cfg2cmd/netdev_vxlan.conf.cmd        |  2 +-
 src/test/cfg2cmd/q35-ide.conf.cmd             |  4 +--
 .../q35-linux-hostpci-mapping.conf.cmd        |  4 +--
 .../q35-linux-hostpci-multifunction.conf.cmd  |  4 +--
 ...q35-linux-hostpci-x-pci-overrides.conf.cmd |  4 +--
 src/test/cfg2cmd/q35-linux-hostpci.conf.cmd   |  4 +--
 src/test/cfg2cmd/q35-simple.conf.cmd          |  4 +--
 src/test/cfg2cmd/seabios_serial.conf.cmd      |  4 +--
 src/test/cfg2cmd/simple-btrfs.conf.cmd        |  4 +--
 .../cfg2cmd/simple-disk-passthrough.conf.cmd  |  4 +--
 src/test/cfg2cmd/simple-rbd.conf.cmd          |  4 +--
 src/test/cfg2cmd/simple-virtio-blk.conf.cmd   |  4 +--
 .../cfg2cmd/simple-zfs-over-iscsi.conf.cmd    |  4 +--
 src/test/cfg2cmd/simple1.conf.cmd             |  4 +--
 23 files changed, 70 insertions(+), 42 deletions(-)

-- 
2.47.2





More information about the pve-devel mailing list