[PATCH 2/3] hw/i386/pc_piix: Remove pc-i440fx-2.4 up to pc-i440fx-2.12

Thomas Huth posted 3 patches 3 days, 17 hours ago
There is a newer version of this series
[PATCH 2/3] hw/i386/pc_piix: Remove pc-i440fx-2.4 up to pc-i440fx-2.12
Posted by Thomas Huth 3 days, 17 hours ago
These machines have explicitly been marked as deprecated in
QEMU 9.1, so it should be fine to remove these antique versioned
machine types two releases later in 10.0.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 docs/about/deprecated.rst       |  7 ---
 docs/about/removed-features.rst |  4 +-
 docs/interop/firmware.json      |  2 +-
 hw/i386/pc_piix.c               | 95 ---------------------------------
 qemu-options.hx                 | 10 ++--
 5 files changed, 8 insertions(+), 110 deletions(-)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 4a3c302962..7b42d6eecc 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -236,13 +236,6 @@ deprecated; use the new name ``dtb-randomness`` instead. The new name
 better reflects the way this property affects all random data within
 the device tree blob, not just the ``kaslr-seed`` node.
 
-``pc-i440fx-2.4`` up to ``pc-i440fx-2.12`` (since 9.1)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-These old machine types are quite neglected nowadays and thus might have
-various pitfalls with regards to live migration. Use a newer machine type
-instead.
-
 PPC 405 ``ref405ep`` machine (since 9.1)
 ''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index c6616ce05e..936846ed7b 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -1006,8 +1006,8 @@ mips ``fulong2e`` machine alias (removed in 6.0)
 
 This machine has been renamed ``fuloong2e``.
 
-``pc-0.10`` up to ``pc-i440fx-2.3`` (removed in 4.0 up to 9.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+``pc-0.10`` up to ``pc-i440fx-2.12`` (removed in 4.0 up to 10.0)
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
 These machine types were very old and likely could not be used for live
 migration from old QEMU versions anymore. Use a newer machine type instead.
diff --git a/docs/interop/firmware.json b/docs/interop/firmware.json
index 57f55f6c54..f1e74318ff 100644
--- a/docs/interop/firmware.json
+++ b/docs/interop/firmware.json
@@ -97,7 +97,7 @@
 #            machine types, not aliases. Glob patterns are understood,
 #            which is especially useful for versioned machine types.
 #            (For example, the glob pattern "pc-i440fx-*" matches
-#            "pc-i440fx-2.12".) On the QEMU command line, "-machine
+#            "pc-i440fx-9.1".) On the QEMU command line, "-machine
 #            type=..." specifies the requested machine type (but that
 #            option does not accept glob patterns).
 #
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 04d2957adc..b821c32b38 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -698,101 +698,6 @@ static void pc_i440fx_machine_3_0_options(MachineClass *m)
 
 DEFINE_I440FX_MACHINE(3, 0);
 
-static void pc_i440fx_machine_2_12_options(MachineClass *m)
-{
-    pc_i440fx_machine_3_0_options(m);
-    compat_props_add(m->compat_props, hw_compat_2_12, hw_compat_2_12_len);
-    compat_props_add(m->compat_props, pc_compat_2_12, pc_compat_2_12_len);
-}
-
-DEFINE_I440FX_MACHINE(2, 12);
-
-static void pc_i440fx_machine_2_11_options(MachineClass *m)
-{
-    pc_i440fx_machine_2_12_options(m);
-    compat_props_add(m->compat_props, hw_compat_2_11, hw_compat_2_11_len);
-    compat_props_add(m->compat_props, pc_compat_2_11, pc_compat_2_11_len);
-}
-
-DEFINE_I440FX_MACHINE(2, 11);
-
-static void pc_i440fx_machine_2_10_options(MachineClass *m)
-{
-    pc_i440fx_machine_2_11_options(m);
-    compat_props_add(m->compat_props, hw_compat_2_10, hw_compat_2_10_len);
-    compat_props_add(m->compat_props, pc_compat_2_10, pc_compat_2_10_len);
-    m->auto_enable_numa_with_memhp = false;
-}
-
-DEFINE_I440FX_MACHINE(2, 10);
-
-static void pc_i440fx_machine_2_9_options(MachineClass *m)
-{
-    pc_i440fx_machine_2_10_options(m);
-    compat_props_add(m->compat_props, hw_compat_2_9, hw_compat_2_9_len);
-    compat_props_add(m->compat_props, pc_compat_2_9, pc_compat_2_9_len);
-}
-
-DEFINE_I440FX_MACHINE(2, 9);
-
-static void pc_i440fx_machine_2_8_options(MachineClass *m)
-{
-    pc_i440fx_machine_2_9_options(m);
-    compat_props_add(m->compat_props, hw_compat_2_8, hw_compat_2_8_len);
-    compat_props_add(m->compat_props, pc_compat_2_8, pc_compat_2_8_len);
-}
-
-DEFINE_I440FX_MACHINE(2, 8);
-
-static void pc_i440fx_machine_2_7_options(MachineClass *m)
-{
-    pc_i440fx_machine_2_8_options(m);
-    compat_props_add(m->compat_props, hw_compat_2_7, hw_compat_2_7_len);
-    compat_props_add(m->compat_props, pc_compat_2_7, pc_compat_2_7_len);
-}
-
-DEFINE_I440FX_MACHINE(2, 7);
-
-static void pc_i440fx_machine_2_6_options(MachineClass *m)
-{
-    X86MachineClass *x86mc = X86_MACHINE_CLASS(m);
-    PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
-
-    pc_i440fx_machine_2_7_options(m);
-    pcmc->legacy_cpu_hotplug = true;
-    x86mc->fwcfg_dma_enabled = false;
-    compat_props_add(m->compat_props, hw_compat_2_6, hw_compat_2_6_len);
-    compat_props_add(m->compat_props, pc_compat_2_6, pc_compat_2_6_len);
-}
-
-DEFINE_I440FX_MACHINE(2, 6);
-
-static void pc_i440fx_machine_2_5_options(MachineClass *m)
-{
-    X86MachineClass *x86mc = X86_MACHINE_CLASS(m);
-
-    pc_i440fx_machine_2_6_options(m);
-    x86mc->save_tsc_khz = false;
-    m->legacy_fw_cfg_order = 1;
-    compat_props_add(m->compat_props, hw_compat_2_5, hw_compat_2_5_len);
-    compat_props_add(m->compat_props, pc_compat_2_5, pc_compat_2_5_len);
-}
-
-DEFINE_I440FX_MACHINE(2, 5);
-
-static void pc_i440fx_machine_2_4_options(MachineClass *m)
-{
-    PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
-
-    pc_i440fx_machine_2_5_options(m);
-    m->hw_version = "2.4.0";
-    pcmc->broken_reserved_end = true;
-    compat_props_add(m->compat_props, hw_compat_2_4, hw_compat_2_4_len);
-    compat_props_add(m->compat_props, pc_compat_2_4, pc_compat_2_4_len);
-}
-
-DEFINE_I440FX_MACHINE(2, 4);
-
 #ifdef CONFIG_ISAPC
 static void isapc_machine_options(MachineClass *m)
 {
diff --git a/qemu-options.hx b/qemu-options.hx
index 7090d59f6f..a7cc4894f6 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -48,12 +48,12 @@ SRST
 
     For architectures which aim to support live migration compatibility
     across releases, each release will introduce a new versioned machine
-    type. For example, the 2.8.0 release introduced machine types
-    "pc-i440fx-2.8" and "pc-q35-2.8" for the x86\_64/i686 architectures.
+    type. For example, the 9.1.0 release introduced machine types
+    "pc-i440fx-9.1" and "pc-q35-9.1" for the x86\_64/i686 architectures.
 
-    To allow live migration of guests from QEMU version 2.8.0, to QEMU
-    version 2.9.0, the 2.9.0 version must support the "pc-i440fx-2.8"
-    and "pc-q35-2.8" machines too. To allow users live migrating VMs to
+    To allow live migration of guests from QEMU version 9.1.0 to QEMU
+    version 9.2.0, the 9.2.0 version must support the "pc-i440fx-9.1"
+    and "pc-q35-9.1" machines too. To allow users live migrating VMs to
     skip multiple intermediate releases when upgrading, new releases of
     QEMU will support machine types from many previous versions.
 
-- 
2.47.1
Re: [PATCH 2/3] hw/i386/pc_piix: Remove pc-i440fx-2.4 up to pc-i440fx-2.12
Posted by Philippe Mathieu-Daudé 3 days, 11 hours ago
On 17/1/25 11:27, Thomas Huth wrote:
> These machines have explicitly been marked as deprecated in
> QEMU 9.1, so it should be fine to remove these antique versioned
> machine types two releases later in 10.0.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   docs/about/deprecated.rst       |  7 ---
>   docs/about/removed-features.rst |  4 +-
>   docs/interop/firmware.json      |  2 +-
>   hw/i386/pc_piix.c               | 95 ---------------------------------
>   qemu-options.hx                 | 10 ++--
>   5 files changed, 8 insertions(+), 110 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>


Re: [PATCH 2/3] hw/i386/pc_piix: Remove pc-i440fx-2.4 up to pc-i440fx-2.12
Posted by Kashyap Chamarthy 3 days, 16 hours ago
On Fri, Jan 17, 2025 at 11:27:37AM +0100, Thomas Huth wrote:
> These machines have explicitly been marked as deprecated in
> QEMU 9.1, so it should be fine to remove these antique versioned
> machine types two releases later in 10.0.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  docs/about/deprecated.rst       |  7 ---
>  docs/about/removed-features.rst |  4 +-
>  docs/interop/firmware.json      |  2 +-
>  hw/i386/pc_piix.c               | 95 ---------------------------------
>  qemu-options.hx                 | 10 ++--
>  5 files changed, 8 insertions(+), 110 deletions(-)

Looks good to me.  Nice that it has the side-effect of speeding up a
bit of the upstream CI, as it drops unncessary tests.  I also saw your
note in the cover letter that the corresponding Q35 machine types will
be removed in QEMU 10.1.  Thanks!

FWIW:

    Reviewed-by: Kashyap Chamarthy <kchamart@redhat.com>

> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index 4a3c302962..7b42d6eecc 100644

[...]

>  PPC 405 ``ref405ep`` machine (since 9.1)
>  ''''''''''''''''''''''''''''''''''''''''
>  
> diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
> index c6616ce05e..936846ed7b 100644
> --- a/docs/about/removed-features.rst
> +++ b/docs/about/removed-features.rst
> @@ -1006,8 +1006,8 @@ mips ``fulong2e`` machine alias (removed in 6.0)
>  
>  This machine has been renamed ``fuloong2e``.
>  
> -``pc-0.10`` up to ``pc-i440fx-2.3`` (removed in 4.0 up to 9.0)
> -''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +``pc-0.10`` up to ``pc-i440fx-2.12`` (removed in 4.0 up to 10.0)
> +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>  
>  These machine types were very old and likely could not be used for live
>  migration from old QEMU versions anymore. Use a newer machine type instead.
> diff --git a/docs/interop/firmware.json b/docs/interop/firmware.json
> index 57f55f6c54..f1e74318ff 100644
> --- a/docs/interop/firmware.json
> +++ b/docs/interop/firmware.json
> @@ -97,7 +97,7 @@
>  #            machine types, not aliases. Glob patterns are understood,
>  #            which is especially useful for versioned machine types.
>  #            (For example, the glob pattern "pc-i440fx-*" matches
> -#            "pc-i440fx-2.12".) On the QEMU command line, "-machine
> +#            "pc-i440fx-9.1".) On the QEMU command line, "-machine
>  #            type=..." specifies the requested machine type (but that
>  #            option does not accept glob patterns).
>  #
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 04d2957adc..b821c32b38 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -698,101 +698,6 @@ static void pc_i440fx_machine_3_0_options(MachineClass *m)
>  
>  DEFINE_I440FX_MACHINE(3, 0);
>  
> -static void pc_i440fx_machine_2_12_options(MachineClass *m)
> -{
> -    pc_i440fx_machine_3_0_options(m);
> -    compat_props_add(m->compat_props, hw_compat_2_12, hw_compat_2_12_len);
> -    compat_props_add(m->compat_props, pc_compat_2_12, pc_compat_2_12_len);
> -}

[...]


-- 
/kashyap