* migration: stable machine types? @ 2026-02-21 6:55 Michael Tokarev 2026-02-23 10:46 ` Daniel P. Berrangé 0 siblings, 1 reply; 4+ messages in thread From: Michael Tokarev @ 2026-02-21 6:55 UTC (permalink / raw) To: QEMU Development, Peter Xu, Fabiano Rosas Cc: Christian Ehrhardt, Peter Maydell Hi! We had a few examples when a bugfix required for a stable series but it can't be applied because it breaks migration. One recent example is https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/2131822 - the fix has been cherry-picked for 10.0.x but had to be reverted. I wonder if we can, sometimes, introduce additional machine types for stable series. In this case, it might've been an intermediate 10.0.4 machine type, which is between 10.0 and 10.1 - with this additional change included. If this machine is known to both 10.1-tobe and 10.0.4+, all migration should work fine in both directions. It is exactly the same situation and solution which has been implemented by ubuntu in the end, but using their own, distribution-specific, machine types. Why can't we do the same in upstream qemu? And yes, that would be a very rare case. Thanks, /mjt ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: migration: stable machine types? 2026-02-21 6:55 migration: stable machine types? Michael Tokarev @ 2026-02-23 10:46 ` Daniel P. Berrangé 2026-02-23 19:37 ` Peter Xu 0 siblings, 1 reply; 4+ messages in thread From: Daniel P. Berrangé @ 2026-02-23 10:46 UTC (permalink / raw) To: Michael Tokarev Cc: QEMU Development, Peter Xu, Fabiano Rosas, Christian Ehrhardt, Peter Maydell On Sat, Feb 21, 2026 at 09:55:55AM +0300, Michael Tokarev wrote: > Hi! > > We had a few examples when a bugfix required for a stable series > but it can't be applied because it breaks migration. One recent > example is https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/2131822 - > the fix has been cherry-picked for 10.0.x but had to be reverted. > > I wonder if we can, sometimes, introduce additional machine types > for stable series. > > In this case, it might've been an intermediate 10.0.4 machine type, > which is between 10.0 and 10.1 - with this additional change included. > > If this machine is known to both 10.1-tobe and 10.0.4+, all migration > should work fine in both directions. Yep, any bug fix machine would need to be added to 'master' branch too, and any intermediate stable branches - though the latter probably wouldn't ever happen as machine version mistakes are usually discovered reasonably soon. > It is exactly the same situation and solution which has been implemented > by ubuntu in the end, but using their own, distribution-specific, > machine types. > > Why can't we do the same in upstream qemu? There is no constraint from a technical POV. The macros I introduced for defining versioned machine types in a standardized manner, can have variants provided that define "bug fix" machines for stable branches. We have a pretty old example for Q35: hw/i386/pc_q35.c:DEFINE_Q35_MACHINE_BUGFIX(4, 0, 1); We used to have another example for PPC, which used the _MACHINE_TAGGED variant, which added a string suffix instead of a micro version number, but I'd recommend we don't use string suffixes again, only micro versions. The core reason we didn't do this in the past was the support workload, as every extra machine type we add is one more thing to maintain... previously this burden was forever, but at least now we have capped versioned machines at 6 years / 18 minor releases total lifetime. Thus if we did add bugfix machines, that burden is now capped and thus more tolerable. IOW, if you as stable maintainer want to add a bugfix machine, and the subsystem maintainer for that machine is aggreeable to adding it too, there is no fundamental blocker here. With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :| ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: migration: stable machine types? 2026-02-23 10:46 ` Daniel P. Berrangé @ 2026-02-23 19:37 ` Peter Xu 2026-02-23 20:06 ` Daniel P. Berrangé 0 siblings, 1 reply; 4+ messages in thread From: Peter Xu @ 2026-02-23 19:37 UTC (permalink / raw) To: Daniel P. Berrangé Cc: Michael Tokarev, QEMU Development, Fabiano Rosas, Christian Ehrhardt, Peter Maydell On Mon, Feb 23, 2026 at 10:46:49AM +0000, Daniel P. Berrangé wrote: > On Sat, Feb 21, 2026 at 09:55:55AM +0300, Michael Tokarev wrote: > > Hi! > > > > We had a few examples when a bugfix required for a stable series > > but it can't be applied because it breaks migration. One recent > > example is https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/2131822 - > > the fix has been cherry-picked for 10.0.x but had to be reverted. > > > > I wonder if we can, sometimes, introduce additional machine types > > for stable series. > > > > In this case, it might've been an intermediate 10.0.4 machine type, > > which is between 10.0 and 10.1 - with this additional change included. > > > > If this machine is known to both 10.1-tobe and 10.0.4+, all migration > > should work fine in both directions. > > Yep, any bug fix machine would need to be added to 'master' branch > too, and any intermediate stable branches - though the latter probably > wouldn't ever happen as machine version mistakes are usually discovered > reasonably soon. > > > It is exactly the same situation and solution which has been implemented > > by ubuntu in the end, but using their own, distribution-specific, > > machine types. > > > > Why can't we do the same in upstream qemu? > > There is no constraint from a technical POV. The macros I introduced > for defining versioned machine types in a standardized manner, can > have variants provided that define "bug fix" machines for stable > branches. We have a pretty old example for Q35: > > hw/i386/pc_q35.c:DEFINE_Q35_MACHINE_BUGFIX(4, 0, 1); > > We used to have another example for PPC, which used the _MACHINE_TAGGED > variant, which added a string suffix instead of a micro version number, > but I'd recommend we don't use string suffixes again, only micro versions. > > The core reason we didn't do this in the past was the support workload, > as every extra machine type we add is one more thing to maintain... > previously this burden was forever, but at least now we have capped > versioned machines at 6 years / 18 minor releases total lifetime. > Thus if we did add bugfix machines, that burden is now capped and > thus more tolerable. > > > IOW, if you as stable maintainer want to add a bugfix machine, and > the subsystem maintainer for that machine is aggreeable to adding > it too, there is no fundamental blocker here. Then does it mean we may sometimes need to add >1 new bugfix machine types for one fix? Consider if somethinig was broken in QEMU 10.0 release, then in 11.0 QEMU we fixed it and marked backport (which will break guest ABI). If we want to backport that change to older systems (that is, in this case 10.0, 10.1, 10.2), IIUC we need to introduce three machines (for example, 10.0.3, 10.1.2, 10.2.1), rather than one bugfix machine type. IIUC we'll need all these machine types available in master branch and intermediate stable branches? I also don't see if there's any technical issues to solve, it's just that it looks like we can still grow quite some bugfix machine types all over different branches. Thanks, -- Peter Xu ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: migration: stable machine types? 2026-02-23 19:37 ` Peter Xu @ 2026-02-23 20:06 ` Daniel P. Berrangé 0 siblings, 0 replies; 4+ messages in thread From: Daniel P. Berrangé @ 2026-02-23 20:06 UTC (permalink / raw) To: Peter Xu Cc: Michael Tokarev, QEMU Development, Fabiano Rosas, Christian Ehrhardt, Peter Maydell On Mon, Feb 23, 2026 at 02:37:16PM -0500, Peter Xu wrote: > On Mon, Feb 23, 2026 at 10:46:49AM +0000, Daniel P. Berrangé wrote: > > On Sat, Feb 21, 2026 at 09:55:55AM +0300, Michael Tokarev wrote: > > > Hi! > > > > > > We had a few examples when a bugfix required for a stable series > > > but it can't be applied because it breaks migration. One recent > > > example is https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/2131822 - > > > the fix has been cherry-picked for 10.0.x but had to be reverted. > > > > > > I wonder if we can, sometimes, introduce additional machine types > > > for stable series. > > > > > > In this case, it might've been an intermediate 10.0.4 machine type, > > > which is between 10.0 and 10.1 - with this additional change included. > > > > > > If this machine is known to both 10.1-tobe and 10.0.4+, all migration > > > should work fine in both directions. > > > > Yep, any bug fix machine would need to be added to 'master' branch > > too, and any intermediate stable branches - though the latter probably > > wouldn't ever happen as machine version mistakes are usually discovered > > reasonably soon. > > > > > It is exactly the same situation and solution which has been implemented > > > by ubuntu in the end, but using their own, distribution-specific, > > > machine types. > > > > > > Why can't we do the same in upstream qemu? > > > > There is no constraint from a technical POV. The macros I introduced > > for defining versioned machine types in a standardized manner, can > > have variants provided that define "bug fix" machines for stable > > branches. We have a pretty old example for Q35: > > > > hw/i386/pc_q35.c:DEFINE_Q35_MACHINE_BUGFIX(4, 0, 1); > > > > We used to have another example for PPC, which used the _MACHINE_TAGGED > > variant, which added a string suffix instead of a micro version number, > > but I'd recommend we don't use string suffixes again, only micro versions. > > > > The core reason we didn't do this in the past was the support workload, > > as every extra machine type we add is one more thing to maintain... > > previously this burden was forever, but at least now we have capped > > versioned machines at 6 years / 18 minor releases total lifetime. > > Thus if we did add bugfix machines, that burden is now capped and > > thus more tolerable. > > > > > > IOW, if you as stable maintainer want to add a bugfix machine, and > > the subsystem maintainer for that machine is aggreeable to adding > > it too, there is no fundamental blocker here. > > Then does it mean we may sometimes need to add >1 new bugfix machine types > for one fix? > > Consider if somethinig was broken in QEMU 10.0 release, then in 11.0 QEMU > we fixed it and marked backport (which will break guest ABI). > > If we want to backport that change to older systems (that is, in this case > 10.0, 10.1, 10.2), IIUC we need to introduce three machines (for example, > 10.0.3, 10.1.2, 10.2.1), rather than one bugfix machine type. IIUC we'll > need all these machine types available in master branch and intermediate > stable branches? If we cause a regression in an existing machine type via a backport, we should just fix that regression, not introduce a new machine type. A new machine type in stable should only be considered where we need to backport a bugfix, and that fix was inherantly tied to a machine type that exists in master, but not in stable. Even if it is possible to do it, we should still consider each case to decide it is it desirable to do it, given the support burden. IOW, if we ended up with multiple bugfix machine types per stable stream, IMHO that would be a sign we were not being anywhere near strict enough. I was thinking this should be something where we have 0 or 1 bug fix machines introduced per year. ie most stable branches should not need bugfix machine types. Only the most significant of bugs should justify it. With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :| ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-02-23 20:08 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-02-21 6:55 migration: stable machine types? Michael Tokarev 2026-02-23 10:46 ` Daniel P. Berrangé 2026-02-23 19:37 ` Peter Xu 2026-02-23 20:06 ` Daniel P. Berrangé
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.