On Tue, Apr 29, 2025 at 04:30:56PM +0200, Thomas Huth wrote: > On 29/04/2025 15.15, Daniel P. Berrangé wrote: > > This reverts commit c9fd2d9a48ee3c195cf83cc611b87b09f02f0013. > > > > When we introduced the specialized machine type deprecation policy, we > > allow automatic deprecation to take effect immediately, but blocked the > > automatic deletion of machine types for 2 releases. This ensured we > > complied with the historical deprecation policy during the transition > > window. Startnig with the 10.1.0 dev cycle, the old machine types would > > typo: Startnig > > > be candidates for removal under both the old and new deprecation > > policies. > > > > Thus we can now enable automatic deletion of old machine types, which > > takes effect by skipping the QOM type registration. This prevents the > > machine types being listed with '-machine help', and blocks their > > creation. The actual code can be purged at a convenient time of the > > maintainer's choosing. > > > > In the case of the x86_64 target, this change results in the blocking > > of the following machine types: > > > > pc-i440fx-4.0 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-i440fx-3.1 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-i440fx-3.0 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-i440fx-2.9 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-i440fx-2.8 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-i440fx-2.7 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-i440fx-2.6 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-i440fx-2.5 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-i440fx-2.4 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-i440fx-2.12 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-i440fx-2.11 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-i440fx-2.10 Standard PC (i440FX + PIIX, 1996) (deprecated) > > pc-q35-4.0.1 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-4.0 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-3.1 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-3.0 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-2.9 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-2.8 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-2.7 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-2.6 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-2.5 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-2.4 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-2.12 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-2.11 Standard PC (Q35 + ICH9, 2009) (deprecated) > > pc-q35-2.10 Standard PC (Q35 + ICH9, 2009) (deprecated) > > > > Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> > > --- > > include/hw/boards.h | 19 +------------------ > > 1 file changed, 1 insertion(+), 18 deletions(-) > > > > diff --git a/include/hw/boards.h b/include/hw/boards.h > > index 765dc8dd35..74a8e96b2e 100644 > > --- a/include/hw/boards.h > > +++ b/include/hw/boards.h > > @@ -719,28 +719,11 @@ struct MachineState { > > * suitable period of time has passed, it will cause > > * execution of the method to return, avoiding registration > > * of the machine > > - * > > - * The new deprecation and deletion policy for versioned > > - * machine types was introduced in QEMU 9.1.0. > > - * > > - * Under the new policy a number of old machine types (any > > - * prior to 2.12) would be liable for immediate deletion > > - * which would be a violation of our historical deprecation > > - * and removal policy > > - * > > - * Thus deletions are temporarily gated on existance of > > - * the env variable "QEMU_DELETE_MACHINES" / QEMU version > > - * number >= 10.1.0. This gate can be deleted in the 10.1.0 > > - * dev cycle > > */ > > #define MACHINE_VER_DELETION(...) \ > > do { \ > > if (MACHINE_VER_SHOULD_DELETE(__VA_ARGS__)) { \ > > - if (getenv("QEMU_DELETE_MACHINES") || \ > > - QEMU_VERSION_MAJOR > 10 || (QEMU_VERSION_MAJOR == 10 && \ > > - QEMU_VERSION_MINOR >= 1)) { \ > > - return; \ > > - } \ > > + return; \ > > I wonder whether we might want to have it the other way round now instead, > so that we could re-activate the dead machines in case a certain environment > variable (QEMU_ZOMBI_MACHINES) is set? Anyway, just an idea, not sure > whether it's a good one. So for this patch:
Well we should have followup patch(s) to actually delete the now unused machine code, so ideally there will be no machines that could be re-activated. > > Reviewed-by: Thomas Huth <th...@redhat.com> > > > > } \ > > } while (0) > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|