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


Reply via email to