On Mon, Jan 22, 2024 at 12:17:24AM +0100, Philippe Mathieu-Daudé wrote:
> > @@ -560,7 +569,7 @@ static const VMStateDescription 
> > vmstate_designware_pcie_viewport = {
> >       .fields = (const VMStateField[]) {
> >           VMSTATE_UINT64(base, DesignwarePCIEViewport),
> >           VMSTATE_UINT64(target, DesignwarePCIEViewport),
> > -        VMSTATE_UINT32(limit, DesignwarePCIEViewport),
> > +        VMSTATE_UINT64(limit, DesignwarePCIEViewport),
> 
> Unfortunately this breaks the migration stream. I'm not sure
> what is the best way to deal with it (Cc'ing migration
> maintainers).

My understanding is that we can have at least two ways to do this, one
relying on machine type properties, the other one can be VMSD versioning.
Frankly I don't have a solid mind either on which is the best approach.

I never had a talk with either Juan / Dave before on this, but my
understanding is that VMSD versioning is just less-flexible, because it
doesn't support backward migrations (only forward).  While machine-type
property based solution can support both (forward + backward).

I decided to draft a doc update for this, to put my thoughts here:

https://lore.kernel.org/qemu-devel/20240122070600.16681-1-pet...@redhat.com

It can be seen as a reference, or review comments also welcomed.

This device seems to be only supported by CONFIG_FSL_IMX7.  Maybe vmsd
versioning would be good enough here, then?  If so, instead of
VMSTATE_UINT64(), we may want a new VMSTATE_UINT32_V() with a boosted
version.

Thanks,

-- 
Peter Xu


Reply via email to