From: Marc-André Lureau <marcandre.lur...@redhat.com> Hi,
The aforementioned patch breaks virtio-gpu device migrations for versions pre-9.0/9.0, both forwards and backwards. Versioning of `VMS_STRUCT` is more complex than it may initially appear, as evidenced in the problematic commit dfcf74fa68c ("virtio-gpu: fix scanout migration post-load"). To resolve this, we need to propagate the `vmstate` `version_id` through the nested structures. Additionally, we should tie specific machine version to a corresponding `version_id` to maintain migration compatibility. `VMS_VSTRUCT` allows specifying the appropriate version of the nested structure to use. Marc-André Lureau (4): migration: add "exists" info to load-state-field trace include/migration: add VMSTATE_VSTRUCT_TEST_VARRAY_UINT32 virtio-gpu: use a VMState variant for the scanout field virtio-gpu: add x-vmstate-version include/hw/virtio/virtio-gpu.h | 1 + include/migration/vmstate.h | 12 ++++++++++++ hw/core/machine.c | 1 + hw/display/virtio-gpu.c | 28 +++++++++++++++++++++------- migration/vmstate.c | 5 +++-- migration/trace-events | 2 +- 6 files changed, 39 insertions(+), 10 deletions(-) -- 2.41.0.28.gd7d8841f67