Message ID | 20240513071905.499143-1-marcandre.lureau@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | Fix "virtio-gpu: fix scanout migration post-load" | expand |
Hi, Am 13.05.24 um 09:19 schrieb marcandre.lureau@redhat.com: > From: Marc-André Lureau <marcandre.lureau@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"). > > v2: > - use a manual version field test (instead of the more complex struct variant) > Unfortunately, when creating a snapshot with machine type pc-i440fx-9.0 and trying to load it afterwards (both times with patches on top of current master), it'll fail with: > qemu-system-x86_64: virtio-gpu-scanouts: incoming version_id 2 is too new for local version_id 1 > qemu-system-x86_64: Missing section footer for 0000:00:02.0/virtio-gpu > qemu-system-x86_64: Error -22 while loading VM state Is there a bump to virtio-gpu-scanouts' version_id missing? Best Regards, Fiona
Hi Fiona On Mon, May 13, 2024 at 4:56 PM Fiona Ebner <f.ebner@proxmox.com> wrote: > > Hi, > > Am 13.05.24 um 09:19 schrieb marcandre.lureau@redhat.com: > > From: Marc-André Lureau <marcandre.lureau@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"). > > > > v2: > > - use a manual version field test (instead of the more complex struct variant) > > > > Unfortunately, when creating a snapshot with machine type pc-i440fx-9.0 > and trying to load it afterwards (both times with patches on top of > current master), it'll fail with: > > > qemu-system-x86_64: virtio-gpu-scanouts: incoming version_id 2 is too new for local version_id 1 > > qemu-system-x86_64: Missing section footer for 0000:00:02.0/virtio-gpu > > qemu-system-x86_64: Error -22 while loading VM state > > Is there a bump to virtio-gpu-scanouts' version_id missing? > Indeed, it needs: diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index 5de90bb62f..3a88eb5e3a 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -1201,7 +1201,7 @@ static const VMStateDescription vmstate_virtio_gpu_scanout = { static const VMStateDescription vmstate_virtio_gpu_scanouts = { .name = "virtio-gpu-scanouts", - .version_id = 1, + .version_id = 2,
Am 13.05.24 um 15:21 schrieb Marc-André Lureau: > > Indeed, it needs: > > diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c > index 5de90bb62f..3a88eb5e3a 100644 > --- a/hw/display/virtio-gpu.c > +++ b/hw/display/virtio-gpu.c > @@ -1201,7 +1201,7 @@ static const VMStateDescription > vmstate_virtio_gpu_scanout = { > > static const VMStateDescription vmstate_virtio_gpu_scanouts = { > .name = "virtio-gpu-scanouts", > - .version_id = 1, > + .version_id = 2, > > Thanks! With that on top: Tested-by: Fiona Ebner <f.ebner@proxmox.com> Tested with an Ubuntu 23.10 VM: Machine type pc-i440fx-8.2: 1. create snapshot with 8.2, load with patched 9.0 2. create snapshot with patched 9.0, load with patched 9.0 and with 8.2 Machine type pc-i440fx-9.0: 1. create snapshot with patched 9.0, load with patched 9.0 No crashes/failures and didn't notice any other issues
From: Marc-André Lureau <marcandre.lureau@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"). v2: - use a manual version field test (instead of the more complex struct variant) Marc-André Lureau (3): migration: add "exists" info to load-state-field trace migration: fix a typo virtio-gpu: add x-vmstate-version Peter Xu (1): virtio-gpu: fix v2 migration include/hw/virtio/virtio-gpu.h | 1 + hw/core/machine.c | 1 + hw/display/virtio-gpu.c | 26 ++++++++++++++++++-------- migration/vmstate.c | 7 ++++--- migration/trace-events | 2 +- 5 files changed, 25 insertions(+), 12 deletions(-)