qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
@ 2025-11-05  8:49 Jinpu Wang
  2025-11-05  8:59 ` Jason Wang
  2025-11-05  9:14 ` Michael Tokarev
  0 siblings, 2 replies; 12+ messages in thread
From: Jinpu Wang @ 2025-11-05  8:49 UTC (permalink / raw)
  To: qemu-devel, Peter Xu, qemu-stable, Jason Wang, Fabiano Rosas,
	Yu Zhang

Hello QEMU developers,

I’m encountering a migration failure when trying to live-migrate a VM
from a newer host (kernel 6.12 + QEMU 9.2.4) to an older one (kernel
6.1 + QEMU 8.2.10).
Migration in the forward direction (old → new) works fine, but after
rebooting the guest on the new host, migration back to the old host
fails.

________________________________

Issue summary

Source host: kernel 6.12, QEMU 9.2.4

Destination host: kernel 6.1, QEMU 8.2.10

VM type: pc-q35-8.2, using virtio-net-pci with vhost backend

Symptom: Migration from 9.2.4 → 8.2.10 fails with virtio-net load error.

Error log (destination):

2025-09-23T07:06:14.915708Z qemu-8.2: Features 0x1c0010130afffa7
unsupported. Allowed features: 0x179bfffe7
2025-09-23T07:06:14.915843Z qemu-8.2: Failed to load virtio-net:virtio
2025-09-23T07:06:14.915851Z qemu-8.2: error while loading state for
instance 0x0 of device '0000:00:02.0:06.0/virtio-net'
2025-09-23T07:06:14.917894Z qemu-8.2: load of migration failed:
Operation not permitted

________________________________

Analysis

It appears that virtio-net feature bits differ between the two versions.
On QEMU 9.2.4, virtio-net reports additional features:

VIRTIO_F_RING_RESET

VIRTIO_NET_F_HOST_USO

VIRTIO_NET_F_GUEST_USO4

VIRTIO_NET_F_GUEST_USO6

These are not present (or not supported) on QEMU 8.2.10, which causes
the migration state load to fail.

The issue seems related to the introduction of these features and how
they are handled during incoming migration when the target QEMU does
not recognize them.

________________________________

Reproduction steps

Start VM on host with QEMU 8.2.10 (kernel 6.1).

Migrate to host with QEMU 9.2.4 (kernel 6.12).
→ Migration succeeds.

Reboot the guest on the 9.2.4 host.

Attempt to migrate back to QEMU 8.2.10 host.
→ Migration fails with virtio-net load error (see log above).

________________________________

Expected behavior

Migration from newer QEMU to older version should either:

gracefully ignore unsupported virtio-net features, or

fail with a clear compatibility message before starting migration.

Currently, migration starts and fails during device state load.

________________________________

Related patch

I found this commit that looks relevant but is already included in
both 8.2.10 and 9.2.4:

https://lore.kernel.org/qemu-devel/20240527072435.52812-15-mjt@tls.msk.ru/

________________________________

VM configuration

-uuid dbaf0b1f-4dc5-4462-86b1-d82107b58599
-name Serverwittchendbaf0b1f-4dc5-4462-86b1-d82107b58599
-M pc-q35-8.2
-accel kvm,kernel-irqchip=split
-cpu SierraForest-v2
-smp 7,sockets=128,cores=1,maxcpus=128,threads=1
-m 4096,slots=252,maxmem=256G
-bios /usr/share/ovmf/OVMF.fd
-device virtio-net-pci,netdev=hostnet6,id=net6,mac=02:01:17:9b:9a:35,bus=pci.0,addr=0x6
-netdev tap,ifname=n0201179b9a35,id=hostnet6,script=no,downscript=no

________________________________

Question

Is this expected behavior (i.e. migration incompatibility due to newer
virtio-net feature bits)?
Or should QEMU handle such feature mismatches more gracefully (e.g.,
automatically disable unsupported virtio features during migration)?

Any guidance on how to make migration between these versions work
would be appreciated.

________________________________

Thanks,
Jinpu Wang @ IONOS Cloud


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

* Re: [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
  2025-11-05  8:49 [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features) Jinpu Wang
@ 2025-11-05  8:59 ` Jason Wang
  2025-11-05  9:27   ` Jinpu Wang
  2025-11-05  9:14 ` Michael Tokarev
  1 sibling, 1 reply; 12+ messages in thread
From: Jason Wang @ 2025-11-05  8:59 UTC (permalink / raw)
  To: Jinpu Wang; +Cc: qemu-devel, Peter Xu, qemu-stable, Fabiano Rosas, Yu Zhang

On Wed, Nov 5, 2025 at 4:49 PM Jinpu Wang <jinpu.wang@ionos.com> wrote:
>
> Hello QEMU developers,
>
> I’m encountering a migration failure when trying to live-migrate a VM
> from a newer host (kernel 6.12 + QEMU 9.2.4) to an older one (kernel
> 6.1 + QEMU 8.2.10).
> Migration in the forward direction (old → new) works fine, but after
> rebooting the guest on the new host, migration back to the old host
> fails.
>
> ________________________________
>
> Issue summary
>
> Source host: kernel 6.12, QEMU 9.2.4
>
> Destination host: kernel 6.1, QEMU 8.2.10
>
> VM type: pc-q35-8.2, using virtio-net-pci with vhost backend
>
> Symptom: Migration from 9.2.4 → 8.2.10 fails with virtio-net load error.
>
> Error log (destination):
>
> 2025-09-23T07:06:14.915708Z qemu-8.2: Features 0x1c0010130afffa7
> unsupported. Allowed features: 0x179bfffe7
> 2025-09-23T07:06:14.915843Z qemu-8.2: Failed to load virtio-net:virtio
> 2025-09-23T07:06:14.915851Z qemu-8.2: error while loading state for
> instance 0x0 of device '0000:00:02.0:06.0/virtio-net'
> 2025-09-23T07:06:14.917894Z qemu-8.2: load of migration failed:
> Operation not permitted
>
> ________________________________
>
> Analysis
>
> It appears that virtio-net feature bits differ between the two versions.
> On QEMU 9.2.4, virtio-net reports additional features:
>
> VIRTIO_F_RING_RESET
>
> VIRTIO_NET_F_HOST_USO
>
> VIRTIO_NET_F_GUEST_USO4
>
> VIRTIO_NET_F_GUEST_USO6
>
> These are not present (or not supported) on QEMU 8.2.10, which causes
> the migration state load to fail.

Interesting, we've already done the compat work:

GlobalProperty hw_compat_8_1[] = {
    { TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" },
    { "ramfb", "x-migrate", "off" },
    { "vfio-pci-nohotplug", "x-ramfb-migrate", "off" },
    { "igb", "x-pcie-flr-init", "off" },
    { TYPE_VIRTIO_NET, "host_uso", "off"},
    { TYPE_VIRTIO_NET, "guest_uso4", "off"},
    { TYPE_VIRTIO_NET, "guest_uso6", "off"},
};
const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);

>
> The issue seems related to the introduction of these features and how
> they are handled during incoming migration when the target QEMU does
> not recognize them.
>
> ________________________________
>
> Reproduction steps
>
> Start VM on host with QEMU 8.2.10 (kernel 6.1).
>
> Migrate to host with QEMU 9.2.4 (kernel 6.12).
> → Migration succeeds.
>
> Reboot the guest on the 9.2.4 host.
>
> Attempt to migrate back to QEMU 8.2.10 host.
> → Migration fails with virtio-net load error (see log above).
>
> ________________________________
>
> Expected behavior
>
> Migration from newer QEMU to older version should either:
>
> gracefully ignore unsupported virtio-net features, or
>
> fail with a clear compatibility message before starting migration.
>
> Currently, migration starts and fails during device state load.
>
> ________________________________
>
> Related patch
>
> I found this commit that looks relevant but is already included in
> both 8.2.10 and 9.2.4:
>
> https://lore.kernel.org/qemu-devel/20240527072435.52812-15-mjt@tls.msk.ru/
>
> ________________________________
>
> VM configuration
>
> -uuid dbaf0b1f-4dc5-4462-86b1-d82107b58599
> -name Serverwittchendbaf0b1f-4dc5-4462-86b1-d82107b58599
> -M pc-q35-8.2

Could you double check if this is used in both source and destination?

> -accel kvm,kernel-irqchip=split
> -cpu SierraForest-v2
> -smp 7,sockets=128,cores=1,maxcpus=128,threads=1
> -m 4096,slots=252,maxmem=256G
> -bios /usr/share/ovmf/OVMF.fd
> -device virtio-net-pci,netdev=hostnet6,id=net6,mac=02:01:17:9b:9a:35,bus=pci.0,addr=0x6
> -netdev tap,ifname=n0201179b9a35,id=hostnet6,script=no,downscript=no
>
> ________________________________
>
> Question
>
> Is this expected behavior (i.e. migration incompatibility due to newer
> virtio-net feature bits)?

No.

Could you check if

1) those features were enabled or not via "info qtree" when using pc-q35-8.2.
2) whether the migration with if you disabled those features explicitly in 9.2.4

> Or should QEMU handle such feature mismatches more gracefully (e.g.,
> automatically disable unsupported virtio features during migration)?

This would break guests as it could be noticed by guests.

>
> Any guidance on how to make migration between these versions work
> would be appreciated.
>
> ________________________________
>
> Thanks,
> Jinpu Wang @ IONOS Cloud
>

Thanks



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

* Re: [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
  2025-11-05  8:49 [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features) Jinpu Wang
  2025-11-05  8:59 ` Jason Wang
@ 2025-11-05  9:14 ` Michael Tokarev
  1 sibling, 0 replies; 12+ messages in thread
From: Michael Tokarev @ 2025-11-05  9:14 UTC (permalink / raw)
  To: Jinpu Wang, qemu-devel, Peter Xu, qemu-stable, Jason Wang,
	Fabiano Rosas, Yu Zhang, qemu-stable

On 11/5/25 11:49, Jinpu Wang wrote:
> Hello QEMU developers,
> 
> I’m encountering a migration failure when trying to live-migrate a VM
> from a newer host (kernel 6.12 + QEMU 9.2.4) to an older one (kernel
> 6.1 + QEMU 8.2.10).

This is just to note - both 9.2.x and 8.2.x series are end-of-line now
from the qemu PoV, there are no further releases planned.

It'd be nice to find out what's going on here anyway.  Maybe you can
patch this on your side.

Thanks,

/mjt


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

* Re: [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
  2025-11-05  8:59 ` Jason Wang
@ 2025-11-05  9:27   ` Jinpu Wang
  2025-11-05 22:17     ` Peter Xu
  0 siblings, 1 reply; 12+ messages in thread
From: Jinpu Wang @ 2025-11-05  9:27 UTC (permalink / raw)
  To: Jason Wang; +Cc: qemu-devel, Peter Xu, qemu-stable, Fabiano Rosas, Yu Zhang

Hi Jason,

Thank you for reply.
On Wed, Nov 5, 2025 at 9:59 AM Jason Wang <jasowang@redhat.com> wrote:
>
> On Wed, Nov 5, 2025 at 4:49 PM Jinpu Wang <jinpu.wang@ionos.com> wrote:
> >
> > Hello QEMU developers,
> >
> > I’m encountering a migration failure when trying to live-migrate a VM
> > from a newer host (kernel 6.12 + QEMU 9.2.4) to an older one (kernel
> > 6.1 + QEMU 8.2.10).
> > Migration in the forward direction (old → new) works fine, but after
> > rebooting the guest on the new host, migration back to the old host
> > fails.
> >
> > ________________________________
> >
> > Issue summary
> >
> > Source host: kernel 6.12, QEMU 9.2.4
> >
> > Destination host: kernel 6.1, QEMU 8.2.10
> >
> > VM type: pc-q35-8.2, using virtio-net-pci with vhost backend
> >
> > Symptom: Migration from 9.2.4 → 8.2.10 fails with virtio-net load error.
> >
> > Error log (destination):
> >
> > 2025-09-23T07:06:14.915708Z qemu-8.2: Features 0x1c0010130afffa7
> > unsupported. Allowed features: 0x179bfffe7
> > 2025-09-23T07:06:14.915843Z qemu-8.2: Failed to load virtio-net:virtio
> > 2025-09-23T07:06:14.915851Z qemu-8.2: error while loading state for
> > instance 0x0 of device '0000:00:02.0:06.0/virtio-net'
> > 2025-09-23T07:06:14.917894Z qemu-8.2: load of migration failed:
> > Operation not permitted
> >
> > ________________________________
> >
> > Analysis
> >
> > It appears that virtio-net feature bits differ between the two versions.
> > On QEMU 9.2.4, virtio-net reports additional features:
> >
> > VIRTIO_F_RING_RESET
> >
> > VIRTIO_NET_F_HOST_USO
> >
> > VIRTIO_NET_F_GUEST_USO4
> >
> > VIRTIO_NET_F_GUEST_USO6
> >
> > These are not present (or not supported) on QEMU 8.2.10, which causes
> > the migration state load to fail.
>
> Interesting, we've already done the compat work:
>
> GlobalProperty hw_compat_8_1[] = {
>     { TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" },
>     { "ramfb", "x-migrate", "off" },
>     { "vfio-pci-nohotplug", "x-ramfb-migrate", "off" },
>     { "igb", "x-pcie-flr-init", "off" },
>     { TYPE_VIRTIO_NET, "host_uso", "off"},
>     { TYPE_VIRTIO_NET, "guest_uso4", "off"},
>     { TYPE_VIRTIO_NET, "guest_uso6", "off"},
> };
> const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
Yeah, I noticed the same.
>
> >
> > The issue seems related to the introduction of these features and how
> > they are handled during incoming migration when the target QEMU does
> > not recognize them.
> >
> > ________________________________
> >
> > Reproduction steps
> >
> > Start VM on host with QEMU 8.2.10 (kernel 6.1).
> >
> > Migrate to host with QEMU 9.2.4 (kernel 6.12).
> > → Migration succeeds.
> >
> > Reboot the guest on the 9.2.4 host.
> >
> > Attempt to migrate back to QEMU 8.2.10 host.
> > → Migration fails with virtio-net load error (see log above).
> >
> > ________________________________
> >
> > Expected behavior
> >
> > Migration from newer QEMU to older version should either:
> >
> > gracefully ignore unsupported virtio-net features, or
> >
> > fail with a clear compatibility message before starting migration.
> >
> > Currently, migration starts and fails during device state load.
> >
> > ________________________________
> >
> > Related patch
> >
> > I found this commit that looks relevant but is already included in
> > both 8.2.10 and 9.2.4:
> >
> > https://lore.kernel.org/qemu-devel/20240527072435.52812-15-mjt@tls.msk.ru/
> >
> > ________________________________
> >
> > VM configuration
> >
> > -uuid dbaf0b1f-4dc5-4462-86b1-d82107b58599
> > -name Serverwittchendbaf0b1f-4dc5-4462-86b1-d82107b58599
> > -M pc-q35-8.2
>
> Could you double check if this is used in both source and destination?
>
> > -accel kvm,kernel-irqchip=split
> > -cpu SierraForest-v2
> > -smp 7,sockets=128,cores=1,maxcpus=128,threads=1
> > -m 4096,slots=252,maxmem=256G
> > -bios /usr/share/ovmf/OVMF.fd
> > -device virtio-net-pci,netdev=hostnet6,id=net6,mac=02:01:17:9b:9a:35,bus=pci.0,addr=0x6
> > -netdev tap,ifname=n0201179b9a35,id=hostnet6,script=no,downscript=no
> >
> > ________________________________
> >
> > Question
> >
> > Is this expected behavior (i.e. migration incompatibility due to newer
> > virtio-net feature bits)?
>
> No.
>
> Could you check if
>
> 1) those features were enabled or not via "info qtree" when using pc-q35-8.2.
here is output on the machine with 9.2.4, all uso features are enabled:
jwang@ps404a-16.stg:~$ nc -U
/opt/profitbricks/vcb/pbkvm/mon/791776d3-72cc-4392-8603-bb5bdc537011.sock
{"QMP": {"version": {"qemu": {"micro": 4, "minor": 2, "major": 9},
"package": ""}, "capabilities": ["oob"]}}
{'execute':'qmp_capabilities'}
{"return": {}}
{'execute':'human-monitor-command','arguments':{'command-line':'info virtio'}}
{"return": "/machine/peripheral-anon/device[1]/virtio-backend
[virtio-rng]\r\n/machine/peripheral/virtio-disk5/virtio-backend
[virtio-blk]\r\n/machine/peripheral/virtio-disk7/virtio-backend
[virtio-blk]\r\n/machine/peripheral/net6/virtio-backend
[virtio-net]\r\n"}
{'execute':'human-monitor-command','arguments':{'command-line':'info qtree'}
}
{"return": "bus: main-system-bus\r\n  type System\r\n  dev: ps2-mouse,
id \"\"\r\n    gpio-out \"\" 1\r\n  dev: ps2-kbd, id \"\"\r\n
gpio-out \"\" 1\r\n  dev: hpet, id \"\"\r\n    gpio-in \"\" 2\r\n
gpio-out \"\" 1\r\n    gpio-out \"sysbus-irq\" 32\r\n    timers = 3
(0x3)\r\n    msi = false\r\n    hpet-intcap = 16711940 (0xff0104)\r\n
  hpet-offset-saved = true\r\n    mmio
00000000fed00000/0000000000000400\r\n  dev: ioapic, id \"\"\r\n
gpio-in \"\" 24\r\n    version = 32 (0x20)\r\n    mmio
00000000fec00000/0000000000001000\r\n  dev: q35-pcihost, id \"\"\r\n
 MCFG = 3758096384 (0xe0000000)\r\n    pci-hole64-size = 34359738368
(32 GiB)\r\n    below-4g-mem-size = 2147483648 (2 GiB)\r\n
above-4g-mem-size = 2147483648 (2 GiB)\r\n    smm-ranges = true\r\n
x-pci-hole64-fix = true\r\n    x-config-reg-migration-enabled =
true\r\n    bypass-iommu = false\r\n    bus: pcie.0\r\n      type
PCIE\r\n      dev: pcie-root-port, id \"rp.2\"\r\n
x-migrate-msix = true\r\n        bus-reserve = 4294967295
(0xffffffff)\r\n        io-reserve = 18446744073709551615 (16 EiB)\r\n
       mem-reserve = 18446744073709551615 (16 EiB)\r\n
pref32-reserve = 18446744073709551615 (16 EiB)\r\n
pref64-reserve = 18446744073709551615 (16 EiB)\r\n        x-speed =
\"16\"\r\n        x-width = \"32\"\r\n        power_controller_present
= true\r\n        disable-acs = false\r\n        chassis = 0 (0x0)\r\n
       slot = 1 (0x1)\r\n        hotplug = true\r\n
x-do-not-expose-native-hotplug-cap = false\r\n        port = 0
(0x0)\r\n        aer_log_max = 8 (0x8)\r\n
x-pci-express-writeable-slt-bug = false\r\n        addr = 04.0\r\n
   romfile = \"\"\r\n        romsize = 4294967295 (0xffffffff)\r\n
   rombar = 1 (0x1)\r\n        multifunction = false\r\n
x-pcie-lnksta-dllla = true\r\n        x-pcie-extcap-init = true\r\n
    failover_pair_id = \"\"\r\n        acpi-index = 0 (0x0)\r\n
x-pcie-err-unc-mask = true\r\n        x-pcie-ari-nextfn-1 = false\r\n
      x-max-bounce-buffer-size = 4096 (4 KiB)\r\n
x-pcie-ext-tag = false\r\n        busnr = 0 (0x0)\r\n        class PCI
bridge, addr 00:04.0, pci id 1b36:000c (sub 0080:0000)\r\n        bar
0: mem at 0x88644000 [0x88644fff]\r\n        bus: rp.2\r\n
type PCIE\r\n      dev: pcie-root-port, id \"rp.1\"\r\n
x-migrate-msix = true\r\n        bus-reserve = 4294967295
(0xffffffff)\r\n        io-reserve = 18446744073709551615 (16 EiB)\r\n
       mem-reserve = 18446744073709551615 (16 EiB)\r\n
pref32-reserve = 18446744073709551615 (16 EiB)\r\n
pref64-reserve = 18446744073709551615 (16 EiB)\r\n        x-speed =
\"16\"\r\n        x-width = \"32\"\r\n        power_controller_present
= true\r\n        disable-acs = false\r\n        chassis = 0 (0x0)\r\n
       slot = 0 (0x0)\r\n        hotplug = true\r\n
x-do-not-expose-native-hotplug-cap = false\r\n        port = 0
(0x0)\r\n        aer_log_max = 8 (0x8)\r\n
x-pci-express-writeable-slt-bug = false\r\n        addr = 03.0\r\n
   romfile = \"\"\r\n        romsize = 4294967295 (0xffffffff)\r\n
   rombar = 1 (0x1)\r\n        multifunction = false\r\n
x-pcie-lnksta-dllla = true\r\n        x-pcie-extcap-init = true\r\n
    failover_pair_id = \"\"\r\n        acpi-index = 0 (0x0)\r\n
x-pcie-err-unc-mask = true\r\n        x-pcie-ari-nextfn-1 = false\r\n
      x-max-bounce-buffer-size = 4096 (4 KiB)\r\n
x-pcie-ext-tag = false\r\n        busnr = 0 (0x0)\r\n        class PCI
bridge, addr 00:03.0, pci id 1b36:000c (sub 0080:0000)\r\n        bar
0: mem at 0x88645000 [0x88645fff]\r\n        bus: rp.1\r\n
type PCIE\r\n      dev: pcie-pci-bridge, id \"pci.0\"\r\n        msi =
\"auto\"\r\n        x-pci-express-writeable-slt-bug = false\r\n
addr = 02.0\r\n        romfile = \"\"\r\n        romsize = 4294967295
(0xffffffff)\r\n        rombar = 1 (0x1)\r\n        multifunction =
false\r\n        x-pcie-lnksta-dllla = true\r\n
x-pcie-extcap-init = true\r\n        failover_pair_id = \"\"\r\n
 acpi-index = 0 (0x0)\r\n        x-pcie-err-unc-mask = true\r\n
x-pcie-ari-nextfn-1 = false\r\n        x-max-bounce-buffer-size = 4096
(4 KiB)\r\n        x-pcie-ext-tag = false\r\n        busnr = 0
(0x0)\r\n        class PCI bridge, addr 00:02.0, pci id 1b36:000e (sub
0080:0000)\r\n        bar 0: mem at 0x8000100000 [0x80001000ff]\r\n
    bus: pci.0\r\n          type PCI\r\n          dev: virtio-blk-pci,
id \"virtio-disk7\"\r\n            disable-legacy = \"off\"\r\n
    disable-modern = false\r\n            class = 0 (0x0)\r\n
  ioeventfd = true\r\n            vectors = 3 (0x3)\r\n
virtio-pci-bus-master-bug-migration = false\r\n
migrate-extra = true\r\n            modern-pio-notify = false\r\n
      x-disable-pcie = false\r\n            page-per-vq = false\r\n
        x-ignore-backend-features = false\r\n            ats =
false\r\n            x-ats-page-aligned = true\r\n
x-pcie-deverr-init = true\r\n            x-pcie-lnkctl-init = true\r\n
           x-pcie-pm-init = true\r\n
x-pcie-pm-no-soft-reset = false\r\n            x-pcie-flr-init =
true\r\n            aer = false\r\n            addr = 07.0\r\n
   romfile = \"\"\r\n            romsize = 4294967295 (0xffffffff)\r\n
           rombar = 1 (0x1)\r\n            multifunction = false\r\n
         x-pcie-lnksta-dllla = true\r\n            x-pcie-extcap-init
= true\r\n            failover_pair_id = \"\"\r\n
acpi-index = 0 (0x0)\r\n            x-pcie-err-unc-mask = true\r\n
       x-pcie-ari-nextfn-1 = false\r\n
x-max-bounce-buffer-size = 4096 (4 KiB)\r\n            x-pcie-ext-tag
= false\r\n            busnr = 1 (0x1)\r\n            class SCSI
controller, addr 01:07.0, pci id 1af4:1001 (sub 1af4:0002)\r\n
   bar 0: i/o at 0x6000 [0x607f]\r\n            bar 1: mem at
0x88400000 [0x88400fff]\r\n            bar 4: mem at 0x8000000000
[0x8000003fff]\r\n            bus: virtio-bus\r\n              type
virtio-pci-bus\r\n              dev: virtio-blk-device, id \"\"\r\n
            drive = \"drive-virtio-disk7\"\r\n
backend_defaults = \"auto\"\r\n                logical_block_size =
512 (512 B)\r\n                physical_block_size = 512 (512 B)\r\n
             min_io_size = 0 (0 B)\r\n                opt_io_size = 0
(0 B)\r\n                discard_granularity = 4294967295 (4 GiB)\r\n
              write-cache = \"auto\"\r\n                share-rw =
false\r\n                account-invalid = \"auto\"\r\n
account-failed = \"auto\"\r\n                rerror = \"auto\"\r\n
           werror = \"auto\"\r\n                cyls = 16383
(0x3fff)\r\n                heads = 16 (0x10)\r\n                secs
= 63 (0x3f)\r\n                lcyls = 0 (0x0)\r\n
lheads = 0 (0x0)\r\n                lsecs = 0 (0x0)\r\n
serial = \"b663a1b71b486d62\"\r\n                config-wce = true\r\n
               request-merging = true\r\n                num-queues =
2 (0x2)\r\n                queue-size = 256 (0x100)\r\n
seg-max-adjust = true\r\n                iothread-vq-mapping =
<null>\r\n                discard = false\r\n
report-discard-granularity = true\r\n                write-zeroes =
true\r\n                max-discard-sectors = 4194303 (0x3fffff)\r\n
             max-write-zeroes-sectors = 4194303 (0x3fffff)\r\n
       x-enable-wce-if-config-wce = true\r\n
indirect_desc = true\r\n                event_idx = true\r\n
     notify_on_empty = true\r\n                any_layout = true\r\n
             iommu_platform = false\r\n                packed =
false\r\n                queue_reset = true\r\n
in_order = false\r\n                use-started = true\r\n
   use-disabled-flag = true\r\n                x-disable-legacy-check
= false\r\n          dev: virtio-blk-pci, id \"virtio-disk5\"\r\n
      disable-legacy = \"off\"\r\n            disable-modern =
false\r\n            class = 0 (0x0)\r\n            ioeventfd =
true\r\n            vectors = 3 (0x3)\r\n
virtio-pci-bus-master-bug-migration = false\r\n
migrate-extra = true\r\n            modern-pio-notify = false\r\n
      x-disable-pcie = false\r\n            page-per-vq = false\r\n
        x-ignore-backend-features = false\r\n            ats =
false\r\n            x-ats-page-aligned = true\r\n
x-pcie-deverr-init = true\r\n            x-pcie-lnkctl-init = true\r\n
           x-pcie-pm-init = true\r\n
x-pcie-pm-no-soft-reset = false\r\n            x-pcie-flr-init =
true\r\n            aer = false\r\n            addr = 05.0\r\n
   romfile = \"\"\r\n            romsize = 4294967295 (0xffffffff)\r\n
           rombar = 1 (0x1)\r\n            multifunction = false\r\n
         x-pcie-lnksta-dllla = true\r\n            x-pcie-extcap-init
= true\r\n            failover_pair_id = \"\"\r\n
acpi-index = 0 (0x0)\r\n            x-pcie-err-unc-mask = true\r\n
       x-pcie-ari-nextfn-1 = false\r\n
x-max-bounce-buffer-size = 4096 (4 KiB)\r\n            x-pcie-ext-tag
= false\r\n            busnr = 1 (0x1)\r\n            class SCSI
controller, addr 01:05.0, pci id 1af4:1001 (sub 1af4:0002)\r\n
   bar 0: i/o at 0x6080 [0x60ff]\r\n            bar 1: mem at
0x88402000 [0x88402fff]\r\n            bar 4: mem at 0x8000008000
[0x800000bfff]\r\n            bus: virtio-bus\r\n              type
virtio-pci-bus\r\n              dev: virtio-blk-device, id \"\"\r\n
            drive = \"drive-virtio-disk5\"\r\n
backend_defaults = \"auto\"\r\n                logical_block_size =
512 (512 B)\r\n                physical_block_size = 512 (512 B)\r\n
             min_io_size = 0 (0 B)\r\n                opt_io_size = 0
(0 B)\r\n                discard_granularity = 4294967295 (4 GiB)\r\n
              write-cache = \"auto\"\r\n                share-rw =
false\r\n                account-invalid = \"auto\"\r\n
account-failed = \"auto\"\r\n                rerror = \"auto\"\r\n
           werror = \"auto\"\r\n                cyls = 16383
(0x3fff)\r\n                heads = 16 (0x10)\r\n                secs
= 63 (0x3f)\r\n                lcyls = 0 (0x0)\r\n
lheads = 0 (0x0)\r\n                lsecs = 0 (0x0)\r\n
serial = \"2ea4900a095b1012\"\r\n                config-wce = true\r\n
               request-merging = true\r\n                num-queues =
2 (0x2)\r\n                queue-size = 256 (0x100)\r\n
seg-max-adjust = true\r\n                iothread-vq-mapping =
<null>\r\n                discard = false\r\n
report-discard-granularity = true\r\n                write-zeroes =
true\r\n                max-discard-sectors = 4194303 (0x3fffff)\r\n
             max-write-zeroes-sectors = 4194303 (0x3fffff)\r\n
       x-enable-wce-if-config-wce = true\r\n
indirect_desc = true\r\n                event_idx = true\r\n
     notify_on_empty = true\r\n                any_layout = true\r\n
             iommu_platform = false\r\n                packed =
false\r\n                queue_reset = true\r\n
in_order = false\r\n                use-started = true\r\n
   use-disabled-flag = true\r\n                x-disable-legacy-check
= false\r\n          dev: virtio-net-pci, id \"net6\"\r\n
disable-legacy = \"off\"\r\n            disable-modern = false\r\n
       ioeventfd = true\r\n            vectors = 4 (0x4)\r\n
 virtio-pci-bus-master-bug-migration = false\r\n
migrate-extra = true\r\n            modern-pio-notify = false\r\n
      x-disable-pcie = false\r\n            page-per-vq = false\r\n
        x-ignore-backend-features = false\r\n            ats =
false\r\n            x-ats-page-aligned = true\r\n
x-pcie-deverr-init = true\r\n            x-pcie-lnkctl-init = true\r\n
           x-pcie-pm-init = true\r\n
x-pcie-pm-no-soft-reset = false\r\n            x-pcie-flr-init =
true\r\n            aer = false\r\n            addr = 06.0\r\n
   romfile = \"efi-virtio.rom\"\r\n            romsize = 262144
(0x40000)\r\n            rombar = 1 (0x1)\r\n            multifunction
= false\r\n            x-pcie-lnksta-dllla = true\r\n
x-pcie-extcap-init = true\r\n            failover_pair_id = \"\"\r\n
         acpi-index = 0 (0x0)\r\n            x-pcie-err-unc-mask =
true\r\n            x-pcie-ari-nextfn-1 = false\r\n
x-max-bounce-buffer-size = 4096 (4 KiB)\r\n            x-pcie-ext-tag
= false\r\n            busnr = 1 (0x1)\r\n            class Ethernet
controller, addr 01:06.0, pci id 1af4:1000 (sub 1af4:0001)\r\n
   bar 0: i/o at 0x6100 [0x611f]\r\n            bar 1: mem at
0x88401000 [0x88401fff]\r\n            bar 4: mem at 0x8000004000
[0x8000007fff]\r\n            bar 6: mem at 0xffffffffffffffff
[0x3fffe]\r\n            bus: virtio-bus\r\n              type
virtio-pci-bus\r\n              dev: virtio-net-device, id \"\"\r\n
            csum = true\r\n                guest_csum = true\r\n
         gso = true\r\n                guest_tso4 = true\r\n
     guest_tso6 = true\r\n                guest_ecn = true\r\n
       guest_ufo = true\r\n                guest_announce = true\r\n
             host_tso4 = true\r\n                host_tso6 = true\r\n
              host_ecn = true\r\n                host_ufo = true\r\n
             mrg_rxbuf = true\r\n                status = true\r\n
           ctrl_vq = true\r\n                ctrl_rx = true\r\n
        ctrl_vlan = true\r\n                ctrl_rx_extra = true\r\n
             ctrl_mac_addr = true\r\n
ctrl_guest_offloads = true\r\n                mq = false\r\n
     rss = false\r\n                hash = false\r\n
ebpf-rss-fds = <null>\r\n                guest_rsc_ext = false\r\n
           rsc_interval = 300000 (0x493e0)\r\n                mac =
\"02:01:51:df:1b:c5\"\r\n                netdev = \"hostnet6\"\r\n
           x-txtimer = 150000 (0x249f0)\r\n                x-txburst =
256 (0x100)\r\n                tx = \"\"\r\n
rx_queue_size = 256 (0x100)\r\n                tx_queue_size = 256
(0x100)\r\n                host_mtu = 0 (0x0)\r\n
x-mtu-bypass-backend = true\r\n                speed = -1
(0xffffffffffffffff)\r\n                duplex = \"\"\r\n
  failover = false\r\n                guest_uso4 = true\r\n
    guest_uso6 = true\r\n                host_uso = true\r\n
     indirect_desc = true\r\n                event_idx = true\r\n
          notify_on_empty = true\r\n                any_layout =
true\r\n                iommu_platform = false\r\n
packed = false\r\n                queue_reset = true\r\n
 in_order = false\r\n                use-started = true\r\n
    use-disabled-flag = true\r\n                x-disable-legacy-check
= false\r\n          dev: virtio-rng-pci, id \"\"\r\n
disable-legacy = \"off\"\r\n            disable-modern = false\r\n
       ioeventfd = true\r\n            vectors = 2 (0x2)\r\n
 virtio-pci-bus-master-bug-migration = false\r\n
migrate-extra = true\r\n            modern-pio-notify = false\r\n
      x-disable-pcie = false\r\n            page-per-vq = false\r\n
        x-ignore-backend-features = false\r\n            ats =
false\r\n            x-ats-page-aligned = true\r\n
x-pcie-deverr-init = true\r\n            x-pcie-lnkctl-init = true\r\n
           x-pcie-pm-init = true\r\n
x-pcie-pm-no-soft-reset = false\r\n            x-pcie-flr-init =
true\r\n            aer = false\r\n            addr = 03.0\r\n
   romfile = \"\"\r\n            romsize = 4294967295 (0xffffffff)\r\n
           rombar = 1 (0x1)\r\n            multifunction = false\r\n
         x-pcie-lnksta-dllla = true\r\n            x-pcie-extcap-init
= true\r\n            failover_pair_id = \"\"\r\n
acpi-index = 0 (0x0)\r\n            x-pcie-err-unc-mask = true\r\n
       x-pcie-ari-nextfn-1 = false\r\n
x-max-bounce-buffer-size = 4096 (4 KiB)\r\n            x-pcie-ext-tag
= false\r\n            busnr = 1 (0x1)\r\n            class Class
00ff, addr 01:03.0, pci id 1af4:1005 (sub 1af4:0004)\r\n
bar 0: i/o at 0x6120 [0x613f]\r\n            bar 1: mem at 0x88403000
[0x88403fff]\r\n            bar 4: mem at 0x800000c000
[0x800000ffff]\r\n            bus: virtio-bus\r\n              type
virtio-pci-bus\r\n              dev: virtio-rng-device, id \"\"\r\n
            max-bytes = 1024 (0x400)\r\n                period = 1000
(0x3e8)\r\n                indirect_desc = true\r\n
event_idx = true\r\n                notify_on_empty = true\r\n
       any_layout = true\r\n                iommu_platform = false\r\n
               packed = false\r\n                queue_reset =
true\r\n                in_order = false\r\n
use-started = true\r\n                use-disabled-flag = true\r\n
           x-disable-legacy-check = false\r\n      dev: qxl-vga, id
\"\"\r\n        ram_size = 67108864 (0x4000000)\r\n        vram_size =
67108864 (0x4000000)\r\n        revision = 5 (0x5)\r\n        debug =
0 (0x0)\r\n        guestdebug = 0 (0x0)\r\n        cmdlog = 0
(0x0)\r\n        ram_size_mb = 4294967295 (0xffffffff)\r\n
vram_size_mb = 4294967295 (0xffffffff)\r\n        vram64_size_mb =
4294967295 (0xffffffff)\r\n        vgamem_mb = 16 (0x10)\r\n
surfaces = 1024 (0x400)\r\n        max_outputs = 0 (0x0)\r\n
xres = 0 (0x0)\r\n        yres = 0 (0x0)\r\n        global-vmstate =
false\r\n        addr = 01.0\r\n        romfile =
\"vgabios-qxl.bin\"\r\n        romsize = 65536 (0x10000)\r\n
rombar = 1 (0x1)\r\n        multifunction = false\r\n
x-pcie-lnksta-dllla = true\r\n        x-pcie-extcap-init = true\r\n
    failover_pair_id = \"\"\r\n        acpi-index = 0 (0x0)\r\n
x-pcie-err-unc-mask = true\r\n        x-pcie-ari-nextfn-1 = false\r\n
      x-max-bounce-buffer-size = 4096 (4 KiB)\r\n
x-pcie-ext-tag = false\r\n        busnr = 0 (0x0)\r\n        class VGA
controller, addr 00:01.0, pci id 1b36:0100 (sub 1af4:1100)\r\n
bar 0: mem at 0x84000000 [0x87ffffff]\r\n        bar 1: mem at
0x80000000 [0x83ffffff]\r\n        bar 2: mem at 0x88640000
[0x88641fff]\r\n        bar 3: i/o at 0x70c0 [0x70df]\r\n        bar
6: mem at 0xffffffffffffffff [0xfffe]\r\n      dev: ICH9-SMB, id
\"\"\r\n        addr = 1f.3\r\n        romfile = \"\"\r\n
romsize = 4294967295 (0xffffffff)\r\n        rombar = 1 (0x1)\r\n
  multifunction = true\r\n        x-pcie-lnksta-dllla = true\r\n
 x-pcie-extcap-init = true\r\n        failover_pair_id = \"\"\r\n
  acpi-index = 0 (0x0)\r\n        x-pcie-err-unc-mask = true\r\n
 x-pcie-ari-nextfn-1 = false\r\n        x-max-bounce-buffer-size =
4096 (4 KiB)\r\n        x-pcie-ext-tag = false\r\n        busnr = 0
(0x0)\r\n        class SMBus, addr 00:1f.3, pci id 8086:2930 (sub
1af4:1100)\r\n        bar 4: i/o at 0x7000 [0x703f]\r\n        bus:
i2c\r\n          type i2c-bus\r\n          dev: smbus-eeprom, id
\"\"\r\n            address = 87 (0x57)\r\n          dev:
smbus-eeprom, id \"\"\r\n            address = 86 (0x56)\r\n
dev: smbus-eeprom, id \"\"\r\n            address = 85 (0x55)\r\n
    dev: smbus-eeprom, id \"\"\r\n            address = 84 (0x54)\r\n
        dev: smbus-eeprom, id \"\"\r\n            address = 83
(0x53)\r\n          dev: smbus-eeprom, id \"\"\r\n            address
= 82 (0x52)\r\n          dev: smbus-eeprom, id \"\"\r\n
address = 81 (0x51)\r\n          dev: smbus-eeprom, id \"\"\r\n
    address = 80 (0x50)\r\n      dev: ich9-usb-uhci3, id \"\"\r\n
  masterbus = \"usb-bus.0\"\r\n        firstport = 4 (0x4)\r\n
bandwidth = 1280 (0x500)\r\n        maxframes = 128 (0x80)\r\n
addr = 1d.2\r\n        romfile = \"\"\r\n        romsize = 4294967295
(0xffffffff)\r\n        rombar = 1 (0x1)\r\n        multifunction =
true\r\n        x-pcie-lnksta-dllla = true\r\n
x-pcie-extcap-init = true\r\n        failover_pair_id = \"\"\r\n
 acpi-index = 0 (0x0)\r\n        x-pcie-err-unc-mask = true\r\n
x-pcie-ari-nextfn-1 = false\r\n        x-max-bounce-buffer-size = 4096
(4 KiB)\r\n        x-pcie-ext-tag = false\r\n        busnr = 0
(0x0)\r\n        class USB controller, addr 00:1d.2, pci id 8086:2936
(sub 1af4:1100)\r\n        bar 4: i/o at 0x7060 [0x707f]\r\n      dev:
ich9-usb-uhci2, id \"\"\r\n        masterbus = \"usb-bus.0\"\r\n
 firstport = 2 (0x2)\r\n        bandwidth = 1280 (0x500)\r\n
maxframes = 128 (0x80)\r\n        addr = 1d.1\r\n        romfile =
\"\"\r\n        romsize = 4294967295 (0xffffffff)\r\n        rombar =
1 (0x1)\r\n        multifunction = true\r\n        x-pcie-lnksta-dllla
= true\r\n        x-pcie-extcap-init = true\r\n
failover_pair_id = \"\"\r\n        acpi-index = 0 (0x0)\r\n
x-pcie-err-unc-mask = true\r\n        x-pcie-ari-nextfn-1 = false\r\n
      x-max-bounce-buffer-size = 4096 (4 KiB)\r\n
x-pcie-ext-tag = false\r\n        busnr = 0 (0x0)\r\n        class USB
controller, addr 00:1d.1, pci id 8086:2935 (sub 1af4:1100)\r\n
bar 4: i/o at 0x7080 [0x709f]\r\n      dev: ich9-usb-uhci1, id
\"\"\r\n        masterbus = \"usb-bus.0\"\r\n        firstport = 0
(0x0)\r\n        bandwidth = 1280 (0x500)\r\n        maxframes = 128
(0x80)\r\n        addr = 1d.0\r\n        romfile = \"\"\r\n
romsize = 4294967295 (0xffffffff)\r\n        rombar = 1 (0x1)\r\n
  multifunction = true\r\n        x-pcie-lnksta-dllla = true\r\n
 x-pcie-extcap-init = true\r\n        failover_pair_id = \"\"\r\n
  acpi-index = 0 (0x0)\r\n        x-pcie-err-unc-mask = true\r\n
 x-pcie-ari-nextfn-1 = false\r\n        x-max-bounce-buffer-size =
4096 (4 KiB)\r\n        x-pcie-ext-tag = false\r\n        busnr = 0
(0x0)\r\n        class USB controller, addr 00:1d.0, pci id 8086:2934
(sub 1af4:1100)\r\n        bar 4: i/o at 0x70a0 [0x70bf]\r\n      dev:
ich9-usb-ehci1, id \"\"\r\n        maxframes = 128 (0x80)\r\n
addr = 1d.7\r\n        romfile = \"\"\r\n        romsize = 4294967295
(0xffffffff)\r\n        rombar = 1 (0x1)\r\n        multifunction =
true\r\n        x-pcie-lnksta-dllla = true\r\n
x-pcie-extcap-init = true\r\n        failover_pair_id = \"\"\r\n
 acpi-index = 0 (0x0)\r\n        x-pcie-err-unc-mask = true\r\n
x-pcie-ari-nextfn-1 = false\r\n        x-max-bounce-buffer-size = 4096
(4 KiB)\r\n        x-pcie-ext-tag = false\r\n        busnr = 0
(0x0)\r\n        class USB controller, addr 00:1d.7, pci id 8086:293a
(sub 1af4:1100)\r\n        bar 0: mem at 0x88643000 [0x88643fff]\r\n
     bus: usb-bus.0\r\n          type usb-bus\r\n          dev:
usb-tablet, id \"input0\"\r\n            usb_version = 2 (0x2)\r\n
       display = \"\"\r\n            head = 0 (0x0)\r\n
port = \"\"\r\n            serial = \"\"\r\n            msos-desc =
true\r\n            pcap = \"\"\r\n            addr 0.0, port 1, speed
480, name QEMU USB Tablet, attached\r\n      dev: ich9-ahci, id
\"\"\r\n        addr = 1f.2\r\n        romfile = \"\"\r\n
romsize = 4294967295 (0xffffffff)\r\n        rombar = 1 (0x1)\r\n
  multifunction = true\r\n        x-pcie-lnksta-dllla = true\r\n
 x-pcie-extcap-init = true\r\n        failover_pair_id = \"\"\r\n
  acpi-index = 0 (0x0)\r\n        x-pcie-err-unc-mask = true\r\n
 x-pcie-ari-nextfn-1 = false\r\n        x-max-bounce-buffer-size =
4096 (4 KiB)\r\n        x-pcie-ext-tag = false\r\n        busnr = 0
(0x0)\r\n        class SATA controller, addr 00:1f.2, pci id 8086:2922
(sub 1af4:1100)\r\n        bar 4: i/o at 0x7040 [0x705f]\r\n
bar 5: mem at 0x88642000 [0x88642fff]\r\n        bus: ide.5\r\n
  type IDE\r\n        bus: ide.4\r\n          type IDE\r\n        bus:
ide.3\r\n          type IDE\r\n        bus: ide.2\r\n          type
IDE\r\n        bus: ide.1\r\n          type IDE\r\n        bus:
ide.0\r\n          type IDE\r\n      dev: ICH9-LPC, id \"\"\r\n
gpio-out \"gsi\" 24\r\n        noreboot = false\r\n        smm-compat
= false\r\n        smm-enabled = true\r\n        x-smi-broadcast =
true\r\n        x-smi-cpu-hotplug = true\r\n
x-smi-cpu-hotunplug = true\r\n        x-smi-swsmi-timer = false\r\n
    x-smi-periodic-timer = false\r\n        addr = 1f.0\r\n
romfile = \"\"\r\n        romsize = 4294967295 (0xffffffff)\r\n
rombar = 1 (0x1)\r\n        multifunction = true\r\n
x-pcie-lnksta-dllla = true\r\n        x-pcie-extcap-init = true\r\n
    failover_pair_id = \"\"\r\n        acpi-index = 0 (0x0)\r\n
x-pcie-err-unc-mask = true\r\n        x-pcie-ari-nextfn-1 = false\r\n
      x-max-bounce-buffer-size = 4096 (4 KiB)\r\n
x-pcie-ext-tag = false\r\n        busnr = 0 (0x0)\r\n        class ISA
bridge, addr 00:1f.0, pci id 8086:2918 (sub 1af4:1100)\r\n        bus:
isa.0\r\n          type ISA\r\n          dev: isa-serial, id
\"serial0\"\r\n            index = 0 (0x0)\r\n            iobase =
1016 (0x3f8)\r\n            irq = 4 (0x4)\r\n          dev: pvpanic,
id \"\"\r\n            ioport = 1285 (0x505)\r\n            events = 7
(0x7)\r\n          dev: port92, id \"\"\r\n            gpio-out
\"a20\" 1\r\n          dev: vmmouse, id \"\"\r\n          dev: vmport,
id \"\"\r\n            x-read-set-eax = true\r\n
x-signal-unsupported-cmd = true\r\n            x-report-vmx-type =
true\r\n            x-cmds-v2 = true\r\n            vmware-vmx-version
= 6 (0x6)\r\n            vmware-vmx-type = 2 (0x2)\r\n          dev:
i8042, id \"\"\r\n            gpio-in \"ps2-mouse-input-irq\" 1\r\n
        gpio-in \"ps2-kbd-input-irq\" 1\r\n            gpio-out \"\"
2\r\n            gpio-out \"a20\" 1\r\n            extended-state =
true\r\n            kbd-throttle = false\r\n            kbd-irq = 1
(0x1)\r\n            mouse-irq = 12 (0xc)\r\n          dev: isa-pcspk,
id \"\"\r\n            audiodev = \"\"\r\n            iobase = 97
(0x61)\r\n            migrate = true\r\n          dev: isa-pit, id
\"\"\r\n            gpio-in \"\" 1\r\n            gpio-out \"\" 1\r\n
          iobase = 64 (0x40)\r\n          dev: isa-i8259, id \"\"\r\n
          gpio-in \"\" 8\r\n            gpio-out \"\" 1\r\n
iobase = 160 (0xa0)\r\n            elcr_addr = 1233 (0x4d1)\r\n
    elcr_mask = 222 (0xde)\r\n            master = false\r\n
dev: isa-i8259, id \"\"\r\n            gpio-in \"\" 8\r\n
gpio-out \"\" 1\r\n            iobase = 32 (0x20)\r\n
elcr_addr = 1232 (0x4d0)\r\n            elcr_mask = 248 (0xf8)\r\n
       master = true\r\n          dev: mc146818rtc, id \"\"\r\n
    gpio-out \"\" 1\r\n            base_year = 0 (0x0)\r\n
iobase = 112 (0x70)\r\n            irq = 8 (0x8)\r\n
lost_tick_policy = \"discard\"\r\n          dev: i8257, id \"\"\r\n
        base = 192 (0xc0)\r\n            page-base = 136 (0x88)\r\n
        pageh-base = -1 (0xffffffffffffffff)\r\n            dshift = 1
(0x1)\r\n          dev: i8257, id \"\"\r\n            base = 0
(0x0)\r\n            page-base = 128 (0x80)\r\n            pageh-base
= -1 (0xffffffffffffffff)\r\n            dshift = 0 (0x0)\r\n
dev: mch, id \"\"\r\n        extended-tseg-mbytes = 16 (0x10)\r\n
  smbase-smram = true\r\n        addr = 00.0\r\n        romfile =
\"\"\r\n        romsize = 4294967295 (0xffffffff)\r\n        rombar =
1 (0x1)\r\n        multifunction = false\r\n
x-pcie-lnksta-dllla = true\r\n        x-pcie-extcap-init = true\r\n
    failover_pair_id = \"\"\r\n        acpi-index = 0 (0x0)\r\n
x-pcie-err-unc-mask = true\r\n        x-pcie-ari-nextfn-1 = false\r\n
      x-max-bounce-buffer-size = 4096 (4 KiB)\r\n
x-pcie-ext-tag = false\r\n        busnr = 0 (0x0)\r\n        class
Host bridge, addr 00:00.0, pci id 8086:29c0 (sub 1af4:1100)\r\n  dev:
fw_cfg_io, id \"\"\r\n    dma_enabled = true\r\n    x-file-slots = 32
(0x20)\r\n    acpi-mr-restore = true\r\n  dev: kvmclock, id \"\"\r\n
 x-mach-use-reliable-get-clock = true\r\n  dev: kvmvapic, id
\"\"\r\n"}


> 2) whether the migration with if you disabled those features explicitly in 9.2.4
Could you tell me, how to disable these features?
I tried this change on both source  and target qemu, but still see the
same error, althrough info virtio-status no longer report these
features.
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -3984,11 +3984,11 @@ static Property virtio_net_properties[] = {
     DEFINE_PROP_STRING("duplex", VirtIONet, net_conf.duplex_str),
     DEFINE_PROP_BOOL("failover", VirtIONet, failover, false),
     DEFINE_PROP_BIT64("guest_uso4", VirtIONet, host_features,
-                      VIRTIO_NET_F_GUEST_USO4, true),
+                      VIRTIO_NET_F_GUEST_USO4, false),
     DEFINE_PROP_BIT64("guest_uso6", VirtIONet, host_features,
-                      VIRTIO_NET_F_GUEST_USO6, true),
+                      VIRTIO_NET_F_GUEST_USO6, false),
     DEFINE_PROP_BIT64("host_uso", VirtIONet, host_features,
-                      VIRTIO_NET_F_HOST_USO, true),
+                      VIRTIO_NET_F_HOST_USO, false),
     DEFINE_PROP_END_OF_LIST(),
 };


>
> > Or should QEMU handle such feature mismatches more gracefully (e.g.,
> > automatically disable unsupported virtio features during migration)?
>
> This would break guests as it could be noticed by guests.
understood.
>
> >
> > Any guidance on how to make migration between these versions work
> > would be appreciated.
> >
> > ________________________________
> >
> > Thanks,
> > Jinpu Wang @ IONOS Cloud
> >
>
> Thanks
>


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

* Re: [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
  2025-11-05  9:27   ` Jinpu Wang
@ 2025-11-05 22:17     ` Peter Xu
  2025-11-06  4:05       ` Jason Wang
  2025-11-06 14:28       ` Jinpu Wang
  0 siblings, 2 replies; 12+ messages in thread
From: Peter Xu @ 2025-11-05 22:17 UTC (permalink / raw)
  To: Jinpu Wang; +Cc: Jason Wang, qemu-devel, qemu-stable, Fabiano Rosas, Yu Zhang

On Wed, Nov 05, 2025 at 10:27:59AM +0100, Jinpu Wang wrote:
> > > These are not present (or not supported) on QEMU 8.2.10, which causes
> > > the migration state load to fail.
> >
> > Interesting, we've already done the compat work:
> >
> > GlobalProperty hw_compat_8_1[] = {
> >     { TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" },
> >     { "ramfb", "x-migrate", "off" },
> >     { "vfio-pci-nohotplug", "x-ramfb-migrate", "off" },
> >     { "igb", "x-pcie-flr-init", "off" },
> >     { TYPE_VIRTIO_NET, "host_uso", "off"},
> >     { TYPE_VIRTIO_NET, "guest_uso4", "off"},
> >     { TYPE_VIRTIO_NET, "guest_uso6", "off"},
> > };
> > const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
> Yeah, I noticed the same.

AFAICT, this is a known issue..

Thomas and I used to suggest we should not turn on USO* by default by
probing kernel, but only allow user choosing it explicitly in a VM
setup. IOW, dest qemu should stop booting at all when kernel is too old
(when user chose the feature).

See:

https://lore.kernel.org/all/ZqQNKZ9_OPhDq2AK@x1n/

Thanks,

-- 
Peter Xu



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

* Re: [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
  2025-11-05 22:17     ` Peter Xu
@ 2025-11-06  4:05       ` Jason Wang
  2025-11-06 14:32         ` Jinpu Wang
  2025-11-06 14:28       ` Jinpu Wang
  1 sibling, 1 reply; 12+ messages in thread
From: Jason Wang @ 2025-11-06  4:05 UTC (permalink / raw)
  To: Peter Xu; +Cc: Jinpu Wang, qemu-devel, qemu-stable, Fabiano Rosas, Yu Zhang

x

On Thu, Nov 6, 2025 at 6:17 AM Peter Xu <peterx@redhat.com> wrote:
>
> On Wed, Nov 05, 2025 at 10:27:59AM +0100, Jinpu Wang wrote:
> > > > These are not present (or not supported) on QEMU 8.2.10, which causes
> > > > the migration state load to fail.
> > >
> > > Interesting, we've already done the compat work:
> > >
> > > GlobalProperty hw_compat_8_1[] = {
> > >     { TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" },
> > >     { "ramfb", "x-migrate", "off" },
> > >     { "vfio-pci-nohotplug", "x-ramfb-migrate", "off" },
> > >     { "igb", "x-pcie-flr-init", "off" },
> > >     { TYPE_VIRTIO_NET, "host_uso", "off"},
> > >     { TYPE_VIRTIO_NET, "guest_uso4", "off"},
> > >     { TYPE_VIRTIO_NET, "guest_uso6", "off"},
> > > };
> > > const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
> > Yeah, I noticed the same.
>
> AFAICT, this is a known issue..
>
> Thomas and I used to suggest we should not turn on USO* by default by
> probing kernel, but only allow user choosing it explicitly in a VM
> setup. IOW, dest qemu should stop booting at all when kernel is too old
> (when user chose the feature).
>
> See:
>
> https://lore.kernel.org/all/ZqQNKZ9_OPhDq2AK@x1n/
>
> Thanks,

I see, so the reason is that the destination doesn't support USO in
the kernel. For those kinds of features that depend on the kernel, I
agree to disable them by default. But I'm not sure if it's too late or
maybe we can do strict peer feature check like this in
virtio_net_get_features():

     if (!peer_has_uso(n)) {
-        virtio_clear_feature_ex(features, VIRTIO_NET_F_HOST_USO);
-        virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO4);
-        virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO6);
+        if (n->strict_peer_feature_check) {
+            if (virtio_has_feature_ex(features, VIRTIO_NET_F_HOST_USO) |
+                virtio_has_feature_ex(features, VIRTIO_NET_F_GUEST_USO4) |
+                virtio_has_feature_ex(features, VIRTIO_NET_F_GUEST_USO6))
+                error_setg(errp, "virtio_net: peer doesn't support USO");
+        } else {
+            virtio_clear_feature_ex(features, VIRTIO_NET_F_HOST_USO);
+            virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO4);
+            virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO6);
+        }
     }

So qemu would fail earlier than fail the migration.

Thanks


>
> --
> Peter Xu
>



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

* Re: [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
  2025-11-05 22:17     ` Peter Xu
  2025-11-06  4:05       ` Jason Wang
@ 2025-11-06 14:28       ` Jinpu Wang
  2025-11-07  1:02         ` Jason Wang
  1 sibling, 1 reply; 12+ messages in thread
From: Jinpu Wang @ 2025-11-06 14:28 UTC (permalink / raw)
  To: Peter Xu; +Cc: Jason Wang, qemu-devel, qemu-stable, Fabiano Rosas, Yu Zhang

Hi Peter,
On Wed, Nov 5, 2025 at 11:17 PM Peter Xu <peterx@redhat.com> wrote:
>
> On Wed, Nov 05, 2025 at 10:27:59AM +0100, Jinpu Wang wrote:
> > > > These are not present (or not supported) on QEMU 8.2.10, which causes
> > > > the migration state load to fail.
> > >
> > > Interesting, we've already done the compat work:
> > >
> > > GlobalProperty hw_compat_8_1[] = {
> > >     { TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" },
> > >     { "ramfb", "x-migrate", "off" },
> > >     { "vfio-pci-nohotplug", "x-ramfb-migrate", "off" },
> > >     { "igb", "x-pcie-flr-init", "off" },
> > >     { TYPE_VIRTIO_NET, "host_uso", "off"},
> > >     { TYPE_VIRTIO_NET, "guest_uso4", "off"},
> > >     { TYPE_VIRTIO_NET, "guest_uso6", "off"},
> > > };
> > > const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
> > Yeah, I noticed the same.
>
> AFAICT, this is a known issue..
>
> Thomas and I used to suggest we should not turn on USO* by default by
> probing kernel, but only allow user choosing it explicitly in a VM
> setup. IOW, dest qemu should stop booting at all when kernel is too old
> (when user chose the feature).
I feel this is the approach we should have picked.
>
> See:
>
> https://lore.kernel.org/all/ZqQNKZ9_OPhDq2AK@x1n/
Is there any effort to allow migration from new OS support the USO
features to old OS doesn't support it?
Any hint to make it work?
>
> Thanks,
>
> --
> Peter Xu
>
Thx for the help.


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

* Re: [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
  2025-11-06  4:05       ` Jason Wang
@ 2025-11-06 14:32         ` Jinpu Wang
  2025-11-07  1:03           ` Jason Wang
  0 siblings, 1 reply; 12+ messages in thread
From: Jinpu Wang @ 2025-11-06 14:32 UTC (permalink / raw)
  To: Jason Wang; +Cc: Peter Xu, qemu-devel, qemu-stable, Fabiano Rosas, Yu Zhang

Hi Jason,

On Thu, Nov 6, 2025 at 5:05 AM Jason Wang <jasowang@redhat.com> wrote:
>
> x
>
> On Thu, Nov 6, 2025 at 6:17 AM Peter Xu <peterx@redhat.com> wrote:
> >
> > On Wed, Nov 05, 2025 at 10:27:59AM +0100, Jinpu Wang wrote:
> > > > > These are not present (or not supported) on QEMU 8.2.10, which causes
> > > > > the migration state load to fail.
> > > >
> > > > Interesting, we've already done the compat work:
> > > >
> > > > GlobalProperty hw_compat_8_1[] = {
> > > >     { TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" },
> > > >     { "ramfb", "x-migrate", "off" },
> > > >     { "vfio-pci-nohotplug", "x-ramfb-migrate", "off" },
> > > >     { "igb", "x-pcie-flr-init", "off" },
> > > >     { TYPE_VIRTIO_NET, "host_uso", "off"},
> > > >     { TYPE_VIRTIO_NET, "guest_uso4", "off"},
> > > >     { TYPE_VIRTIO_NET, "guest_uso6", "off"},
> > > > };
> > > > const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
> > > Yeah, I noticed the same.
> >
> > AFAICT, this is a known issue..
> >
> > Thomas and I used to suggest we should not turn on USO* by default by
> > probing kernel, but only allow user choosing it explicitly in a VM
> > setup. IOW, dest qemu should stop booting at all when kernel is too old
> > (when user chose the feature).
> >
> > See:
> >
> > https://lore.kernel.org/all/ZqQNKZ9_OPhDq2AK@x1n/
> >
> > Thanks,
>
> I see, so the reason is that the destination doesn't support USO in
> the kernel. For those kinds of features that depend on the kernel, I
> agree to disable them by default. But I'm not sure if it's too late or
> maybe we can do strict peer feature check like this in
> virtio_net_get_features():
>
>      if (!peer_has_uso(n)) {
> -        virtio_clear_feature_ex(features, VIRTIO_NET_F_HOST_USO);
> -        virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO4);
> -        virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO6);
> +        if (n->strict_peer_feature_check) {
> +            if (virtio_has_feature_ex(features, VIRTIO_NET_F_HOST_USO) |
> +                virtio_has_feature_ex(features, VIRTIO_NET_F_GUEST_USO4) |
> +                virtio_has_feature_ex(features, VIRTIO_NET_F_GUEST_USO6))
> +                error_setg(errp, "virtio_net: peer doesn't support USO");
> +        } else {
> +            virtio_clear_feature_ex(features, VIRTIO_NET_F_HOST_USO);
> +            virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO4);
> +            virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO6);
> +        }
>      }
>
is there any document to learn how the feature checking works,
function like peer_has_uso, what is the peer exactly in this context,
is it the migration target or host kernel?
> So qemu would fail earlier than fail the migration.
>
> Thanks

Thx!
>
>
> >
> > --
> > Peter Xu
> >
>


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

* Re: [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
  2025-11-06 14:28       ` Jinpu Wang
@ 2025-11-07  1:02         ` Jason Wang
  2025-11-07 15:06           ` Jinpu Wang
  0 siblings, 1 reply; 12+ messages in thread
From: Jason Wang @ 2025-11-07  1:02 UTC (permalink / raw)
  To: Jinpu Wang; +Cc: Peter Xu, qemu-devel, qemu-stable, Fabiano Rosas, Yu Zhang

On Thu, Nov 6, 2025 at 10:28 PM Jinpu Wang <jinpu.wang@ionos.com> wrote:
>
> Hi Peter,
> On Wed, Nov 5, 2025 at 11:17 PM Peter Xu <peterx@redhat.com> wrote:
> >
> > On Wed, Nov 05, 2025 at 10:27:59AM +0100, Jinpu Wang wrote:
> > > > > These are not present (or not supported) on QEMU 8.2.10, which causes
> > > > > the migration state load to fail.
> > > >
> > > > Interesting, we've already done the compat work:
> > > >
> > > > GlobalProperty hw_compat_8_1[] = {
> > > >     { TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" },
> > > >     { "ramfb", "x-migrate", "off" },
> > > >     { "vfio-pci-nohotplug", "x-ramfb-migrate", "off" },
> > > >     { "igb", "x-pcie-flr-init", "off" },
> > > >     { TYPE_VIRTIO_NET, "host_uso", "off"},
> > > >     { TYPE_VIRTIO_NET, "guest_uso4", "off"},
> > > >     { TYPE_VIRTIO_NET, "guest_uso6", "off"},
> > > > };
> > > > const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
> > > Yeah, I noticed the same.
> >
> > AFAICT, this is a known issue..
> >
> > Thomas and I used to suggest we should not turn on USO* by default by
> > probing kernel, but only allow user choosing it explicitly in a VM
> > setup. IOW, dest qemu should stop booting at all when kernel is too old
> > (when user chose the feature).
> I feel this is the approach we should have picked.
> >
> > See:
> >
> > https://lore.kernel.org/all/ZqQNKZ9_OPhDq2AK@x1n/
> Is there any effort to allow migration from new OS support the USO
> features to old OS doesn't support it?

You can teach your management to disable USO via the qemu command line.

> Any hint to make it work?

Thanks

> >
> > Thanks,
> >
> > --
> > Peter Xu
> >
> Thx for the help.
>



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

* Re: [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
  2025-11-06 14:32         ` Jinpu Wang
@ 2025-11-07  1:03           ` Jason Wang
  0 siblings, 0 replies; 12+ messages in thread
From: Jason Wang @ 2025-11-07  1:03 UTC (permalink / raw)
  To: Jinpu Wang; +Cc: Peter Xu, qemu-devel, qemu-stable, Fabiano Rosas, Yu Zhang

On Thu, Nov 6, 2025 at 10:33 PM Jinpu Wang <jinpu.wang@ionos.com> wrote:
>
> Hi Jason,
>
> On Thu, Nov 6, 2025 at 5:05 AM Jason Wang <jasowang@redhat.com> wrote:
> >
> > x
> >
> > On Thu, Nov 6, 2025 at 6:17 AM Peter Xu <peterx@redhat.com> wrote:
> > >
> > > On Wed, Nov 05, 2025 at 10:27:59AM +0100, Jinpu Wang wrote:
> > > > > > These are not present (or not supported) on QEMU 8.2.10, which causes
> > > > > > the migration state load to fail.
> > > > >
> > > > > Interesting, we've already done the compat work:
> > > > >
> > > > > GlobalProperty hw_compat_8_1[] = {
> > > > >     { TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" },
> > > > >     { "ramfb", "x-migrate", "off" },
> > > > >     { "vfio-pci-nohotplug", "x-ramfb-migrate", "off" },
> > > > >     { "igb", "x-pcie-flr-init", "off" },
> > > > >     { TYPE_VIRTIO_NET, "host_uso", "off"},
> > > > >     { TYPE_VIRTIO_NET, "guest_uso4", "off"},
> > > > >     { TYPE_VIRTIO_NET, "guest_uso6", "off"},
> > > > > };
> > > > > const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
> > > > Yeah, I noticed the same.
> > >
> > > AFAICT, this is a known issue..
> > >
> > > Thomas and I used to suggest we should not turn on USO* by default by
> > > probing kernel, but only allow user choosing it explicitly in a VM
> > > setup. IOW, dest qemu should stop booting at all when kernel is too old
> > > (when user chose the feature).
> > >
> > > See:
> > >
> > > https://lore.kernel.org/all/ZqQNKZ9_OPhDq2AK@x1n/
> > >
> > > Thanks,
> >
> > I see, so the reason is that the destination doesn't support USO in
> > the kernel. For those kinds of features that depend on the kernel, I
> > agree to disable them by default. But I'm not sure if it's too late or
> > maybe we can do strict peer feature check like this in
> > virtio_net_get_features():
> >
> >      if (!peer_has_uso(n)) {
> > -        virtio_clear_feature_ex(features, VIRTIO_NET_F_HOST_USO);
> > -        virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO4);
> > -        virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO6);
> > +        if (n->strict_peer_feature_check) {
> > +            if (virtio_has_feature_ex(features, VIRTIO_NET_F_HOST_USO) |
> > +                virtio_has_feature_ex(features, VIRTIO_NET_F_GUEST_USO4) |
> > +                virtio_has_feature_ex(features, VIRTIO_NET_F_GUEST_USO6))
> > +                error_setg(errp, "virtio_net: peer doesn't support USO");
> > +        } else {
> > +            virtio_clear_feature_ex(features, VIRTIO_NET_F_HOST_USO);
> > +            virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO4);
> > +            virtio_clear_feature_ex(features, VIRTIO_NET_F_GUEST_USO6);
> > +        }
> >      }
> >
> is there any document to learn how the feature checking works,
> function like peer_has_uso, what is the peer exactly in this context,

It's the peer of virtio-net NIC which is the "backend". In your
context, it should be tap.

> is it the migration target or host kernel?

This aims to fail the qemu launch if the feature required is not
satisfied by the perr.

Let me post a formal RFC for this.

Thanks

> > So qemu would fail earlier than fail the migration.
> >
> > Thanks
>
> Thx!
> >
> >
> > >
> > > --
> > > Peter Xu
> > >
> >
>



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

* Re: [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
  2025-11-07  1:02         ` Jason Wang
@ 2025-11-07 15:06           ` Jinpu Wang
  2025-11-07 16:11             ` Jinpu Wang
  0 siblings, 1 reply; 12+ messages in thread
From: Jinpu Wang @ 2025-11-07 15:06 UTC (permalink / raw)
  To: Jason Wang; +Cc: Peter Xu, qemu-devel, qemu-stable, Fabiano Rosas, Yu Zhang

Hi Jason,

On Fri, Nov 7, 2025 at 2:02 AM Jason Wang <jasowang@redhat.com> wrote:
>
> On Thu, Nov 6, 2025 at 10:28 PM Jinpu Wang <jinpu.wang@ionos.com> wrote:
> >
> > Hi Peter,
> > On Wed, Nov 5, 2025 at 11:17 PM Peter Xu <peterx@redhat.com> wrote:
> > >
> > > On Wed, Nov 05, 2025 at 10:27:59AM +0100, Jinpu Wang wrote:
> > > > > > These are not present (or not supported) on QEMU 8.2.10, which causes
> > > > > > the migration state load to fail.
> > > > >
> > > > > Interesting, we've already done the compat work:
> > > > >
> > > > > GlobalProperty hw_compat_8_1[] = {
> > > > >     { TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" },
> > > > >     { "ramfb", "x-migrate", "off" },
> > > > >     { "vfio-pci-nohotplug", "x-ramfb-migrate", "off" },
> > > > >     { "igb", "x-pcie-flr-init", "off" },
> > > > >     { TYPE_VIRTIO_NET, "host_uso", "off"},
> > > > >     { TYPE_VIRTIO_NET, "guest_uso4", "off"},
> > > > >     { TYPE_VIRTIO_NET, "guest_uso6", "off"},
> > > > > };
> > > > > const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
> > > > Yeah, I noticed the same.
> > >
> > > AFAICT, this is a known issue..
> > >
> > > Thomas and I used to suggest we should not turn on USO* by default by
> > > probing kernel, but only allow user choosing it explicitly in a VM
> > > setup. IOW, dest qemu should stop booting at all when kernel is too old
> > > (when user chose the feature).
> > I feel this is the approach we should have picked.
> > >
> > > See:
> > >
> > > https://lore.kernel.org/all/ZqQNKZ9_OPhDq2AK@x1n/
> > Is there any effort to allow migration from new OS support the USO
> > features to old OS doesn't support it?
>
> You can teach your management to disable USO via the qemu command line.

I added "host_uso=false,guest_uso4=false,guest_uso6=false" for -device
virtio-net-pci
But migration still fails with slightly different error:
char device redirected to /dev/pts/1 (label charserial0)
2025-11-07T15:00:45.528098Z qemu-8.2: Features 0x10130afffa7
unsupported. Allowed features: 0x179bfffe7
2025-11-07T15:00:45.528245Z qemu-8.2: Failed to load virtio-net:virtio
2025-11-07T15:00:45.528253Z qemu-8.2: error while loading state for
instance 0x0 of device '0000:00:02.0:06.0/virtio-net'

I suppose it is VIRTIO_F_RING_RESET?
Any idea? I didn't find option to disable it
>
> > Any hint to make it work?
>
> Thanks

Thx!
>
> > >
> > > Thanks,
> > >
> > > --
> > > Peter Xu
> > >
> > Thx for the help.
> >
>


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

* Re: [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features)
  2025-11-07 15:06           ` Jinpu Wang
@ 2025-11-07 16:11             ` Jinpu Wang
  0 siblings, 0 replies; 12+ messages in thread
From: Jinpu Wang @ 2025-11-07 16:11 UTC (permalink / raw)
  To: Jason Wang; +Cc: Peter Xu, qemu-devel, qemu-stable, Fabiano Rosas, Yu Zhang

On Fri, Nov 7, 2025 at 4:06 PM Jinpu Wang <jinpu.wang@ionos.com> wrote:
>
> Hi Jason,
>
> On Fri, Nov 7, 2025 at 2:02 AM Jason Wang <jasowang@redhat.com> wrote:
> >
> > On Thu, Nov 6, 2025 at 10:28 PM Jinpu Wang <jinpu.wang@ionos.com> wrote:
> > >
> > > Hi Peter,
> > > On Wed, Nov 5, 2025 at 11:17 PM Peter Xu <peterx@redhat.com> wrote:
> > > >
> > > > On Wed, Nov 05, 2025 at 10:27:59AM +0100, Jinpu Wang wrote:
> > > > > > > These are not present (or not supported) on QEMU 8.2.10, which causes
> > > > > > > the migration state load to fail.
> > > > > >
> > > > > > Interesting, we've already done the compat work:
> > > > > >
> > > > > > GlobalProperty hw_compat_8_1[] = {
> > > > > >     { TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" },
> > > > > >     { "ramfb", "x-migrate", "off" },
> > > > > >     { "vfio-pci-nohotplug", "x-ramfb-migrate", "off" },
> > > > > >     { "igb", "x-pcie-flr-init", "off" },
> > > > > >     { TYPE_VIRTIO_NET, "host_uso", "off"},
> > > > > >     { TYPE_VIRTIO_NET, "guest_uso4", "off"},
> > > > > >     { TYPE_VIRTIO_NET, "guest_uso6", "off"},
> > > > > > };
> > > > > > const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
> > > > > Yeah, I noticed the same.
> > > >
> > > > AFAICT, this is a known issue..
> > > >
> > > > Thomas and I used to suggest we should not turn on USO* by default by
> > > > probing kernel, but only allow user choosing it explicitly in a VM
> > > > setup. IOW, dest qemu should stop booting at all when kernel is too old
> > > > (when user chose the feature).
> > > I feel this is the approach we should have picked.
> > > >
> > > > See:
> > > >
> > > > https://lore.kernel.org/all/ZqQNKZ9_OPhDq2AK@x1n/
> > > Is there any effort to allow migration from new OS support the USO
> > > features to old OS doesn't support it?
> >
> > You can teach your management to disable USO via the qemu command line.
>
> I added "host_uso=false,guest_uso4=false,guest_uso6=false" for -device
> virtio-net-pci
> But migration still fails with slightly different error:
> char device redirected to /dev/pts/1 (label charserial0)
> 2025-11-07T15:00:45.528098Z qemu-8.2: Features 0x10130afffa7
> unsupported. Allowed features: 0x179bfffe7
> 2025-11-07T15:00:45.528245Z qemu-8.2: Failed to load virtio-net:virtio
> 2025-11-07T15:00:45.528253Z qemu-8.2: error while loading state for
> instance 0x0 of device '0000:00:02.0:06.0/virtio-net'
>
> I suppose it is VIRTIO_F_RING_RESET?
> Any idea? I didn't find option to disable it
Found it,  "host_uso=false,guest_uso4=false,guest_uso6=false,queue_reset=false"
is needed to allow migration from new OS to old OS
> >
> > > Any hint to make it work?
> >
> > Thanks
>
> Thx!
> >
> > > >
> > > > Thanks,
> > > >
> > > > --
> > > > Peter Xu
> > > >
> > > Thx for the help.
> > >
> >


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

end of thread, other threads:[~2025-11-07 16:12 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-05  8:49 [BUG] Migration failure between QEMU 9.2.4 → 8.2.10 due to virtio-net feature mismatch (VIRTIO_F_RING_RESET / USO features) Jinpu Wang
2025-11-05  8:59 ` Jason Wang
2025-11-05  9:27   ` Jinpu Wang
2025-11-05 22:17     ` Peter Xu
2025-11-06  4:05       ` Jason Wang
2025-11-06 14:32         ` Jinpu Wang
2025-11-07  1:03           ` Jason Wang
2025-11-06 14:28       ` Jinpu Wang
2025-11-07  1:02         ` Jason Wang
2025-11-07 15:06           ` Jinpu Wang
2025-11-07 16:11             ` Jinpu Wang
2025-11-05  9:14 ` Michael Tokarev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).