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é <berrange(a)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 <thuth(a)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 :|