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/[email protected]
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