On Fri, Aug 02, 2024 at 12:40:33PM -0400, Michael S. Tsirkin wrote: > On Fri, Aug 02, 2024 at 12:26:22PM -0400, Peter Xu wrote: > > And that's why I was thinking (where I totally agree with you on this) that > > whether we should settle a short term plan first to be on the safe side > > that we start with migration always being compatible, then we figure the > > other approach. > > We have two big issues around migration compatibility we never solved: > > - some guest visible behaviour depends on a package outside of qemu: > as that package can change, so can qemu behaviour Any example, or bug link for this one? > > - sometimes we change guest visible behaviour and only > discover this after the release: fixing that breaks > migration to one version, not fixing breaks migration to another In this case it is a bug, IMHO, and not always fixable. It's like QEMU can crash and coredump, not fixable unless the user upgrades. Here "upgrades" for migration purpose means, the user should avoid migration with a broken QEMU version, and one needs to cold reboot into a new fixed binary rather than a live migration. The good thing is as long as the user doesn't trigger migration logically the bug can be avoided. The bad thing is since it's a migration bug it cannot be fixed by live migrating to a new QEMU.. AFAICT we did that before, for downstream we fix X.Y.0 with X.Y.1, then declare X.Y.0 broken, something like that. It's the same for downstream where we put into similar documentations. > > > These, to me, look similar enough that I feel we should look > at them together from QAPI POV. Or maybe I misunderstood here, in that case some elaboration of the QAPI that mentioned here could help on clarifying things. So far I don't see any QAPI command can fix a migration bug, for example, which falls into category 2 above. > > Both issues sometimes can have work-arounds, enabling these > would be nice. > Also, both issues have a clean solution, which can come in > two flavors: > 1. basic: detecting incompatibility > and not starting qemu on destination (or failing migration, > possibly early, which I consider a less clean solution). > 2. advanced: ability to go from a set of configurations to > a flag making them compatible. > > > -- > MST > Thanks, -- Peter Xu