[PATCH 0/3] Remove deprecated machines pc-i440fx-2.4 up to pc-i440fx-2.12

While our new auto-disablement of old machine types will only kick in with the next (v10.1) release, the pc-i440fx-2.* machine types have been explicitly marked as deprecated via our old deprecation policy mechanism before (two releases ago), so it should be fine to remove them now already. Note that we can not do much additional clean ups on top yet since the corresponding q35 machines (which share the same compatibility knobs) are still around and only will be removed for the 10.1 release instead. So the bigger clean-up can only be done for 10.1, but removing the i440fx machine types now will still have at least a small benefit of accelerating our CI a little bit (since we don't have to run tests for these old machine types anymore). Thomas Huth (3): tests/qtest/test-x86-cpuid-compat: Remove tests related to pc-i440fx-2.3 hw/i386/pc_piix: Remove pc-i440fx-2.4 up to pc-i440fx-2.12 tests/qtest/test-x86-cpuid-compat: Replaced the removed pc-i440fx-2.* machines docs/about/deprecated.rst | 7 --- docs/about/removed-features.rst | 4 +- docs/interop/firmware.json | 2 +- hw/i386/pc_piix.c | 95 ----------------------------- tests/qtest/test-x86-cpuid-compat.c | 52 ++++++---------- qemu-options.hx | 10 +-- 6 files changed, 25 insertions(+), 145 deletions(-) -- 2.47.1

The pc-i440fx-2.3 machine type has been removed in commit 46a2bd5257 ("hw/i386/pc: Remove deprecated pc-i440fx-2.3 machine") already, so these tests are just dead code by now. Signed-off-by: Thomas Huth <thuth@redhat.com> --- tests/qtest/test-x86-cpuid-compat.c | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/tests/qtest/test-x86-cpuid-compat.c b/tests/qtest/test-x86-cpuid-compat.c index b9e7e5ef7b..9cbc8b7ae9 100644 --- a/tests/qtest/test-x86-cpuid-compat.c +++ b/tests/qtest/test-x86-cpuid-compat.c @@ -357,19 +357,6 @@ int main(int argc, char **argv) "486", "xstore=on", "pc-i440fx-2.7", "xlevel2", 0); } - /* - * QEMU 2.3.0 had auto-level enabled for CPUID[7], already, - * and the compat code that sets default level shouldn't - * disable the auto-level=7 code: - */ - if (qtest_has_machine("pc-i440fx-2.3")) { - add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.3/off", - "Penryn", NULL, "pc-i440fx-2.3", - "level", 4); - add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.3/on", - "Penryn", "erms=on", "pc-i440fx-2.3", - "level", 7); - } if (qtest_has_machine("pc-i440fx-2.9")) { add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.9/off", "Conroe", NULL, "pc-i440fx-2.9", @@ -384,11 +371,6 @@ int main(int argc, char **argv) * code on old machine-types. Just check that the compat code * is working correctly: */ - if (qtest_has_machine("pc-i440fx-2.3")) { - add_cpuid_test("x86/cpuid/xlevel-compat/pc-i440fx-2.3", - "SandyBridge", NULL, "pc-i440fx-2.3", - "xlevel", 0x8000000a); - } if (qtest_has_machine("pc-i440fx-2.4")) { add_cpuid_test("x86/cpuid/xlevel-compat/pc-i440fx-2.4/npt-off", "SandyBridge", NULL, "pc-i440fx-2.4", -- 2.47.1

Thomas Huth <thuth@redhat.com> writes:
The pc-i440fx-2.3 machine type has been removed in commit 46a2bd5257 ("hw/i386/pc: Remove deprecated pc-i440fx-2.3 machine") already, so these tests are just dead code by now.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de> I'm queuing this one individually for now.

On 17/1/25 11:27, Thomas Huth wrote:
The pc-i440fx-2.3 machine type has been removed in commit 46a2bd5257 ("hw/i386/pc: Remove deprecated pc-i440fx-2.3 machine") already, so these tests are just dead code by now.
Signed-off-by: Thomas Huth <thuth@redhat.com> --- tests/qtest/test-x86-cpuid-compat.c | 18 ------------------ 1 file changed, 18 deletions(-)
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>

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

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

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>

Since the pc-i440fx-2.* machine types have been removed, let's run the tests with the corresponding q35 machine types instead (until those get removed, too, then we have to remove the tests completely). Signed-off-by: Thomas Huth <thuth@redhat.com> --- tests/qtest/test-x86-cpuid-compat.c | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/tests/qtest/test-x86-cpuid-compat.c b/tests/qtest/test-x86-cpuid-compat.c index 9cbc8b7ae9..f77e481279 100644 --- a/tests/qtest/test-x86-cpuid-compat.c +++ b/tests/qtest/test-x86-cpuid-compat.c @@ -346,23 +346,23 @@ int main(int argc, char **argv) /* Check compatibility of old machine-types that didn't * auto-increase level/xlevel/xlevel2: */ - if (qtest_has_machine("pc-i440fx-2.7")) { - add_cpuid_test("x86/cpuid/auto-level/pc-2.7", + if (qtest_has_machine("pc-q35-2.7")) { + add_cpuid_test("x86/cpuid/auto-level/pc-q35-2.7", "486", "arat=on,avx512vbmi=on,xsaveopt=on", - "pc-i440fx-2.7", "level", 1); - add_cpuid_test("x86/cpuid/auto-xlevel/pc-2.7", + "pc-q35-2.7", "level", 1); + add_cpuid_test("x86/cpuid/auto-xlevel/pc-q35-2.7", "486", "3dnow=on,sse4a=on,invtsc=on,npt=on,svm=on", - "pc-i440fx-2.7", "xlevel", 0); - add_cpuid_test("x86/cpuid/auto-xlevel2/pc-2.7", - "486", "xstore=on", "pc-i440fx-2.7", + "pc-q35-2.7", "xlevel", 0); + add_cpuid_test("x86/cpuid/auto-xlevel2/pc-q35-2.7", + "486", "xstore=on", "pc-q35-2.7", "xlevel2", 0); } - if (qtest_has_machine("pc-i440fx-2.9")) { - add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.9/off", - "Conroe", NULL, "pc-i440fx-2.9", + if (qtest_has_machine("pc-q35-2.9")) { + add_cpuid_test("x86/cpuid/auto-level7/pc-q35-2.9/off", + "Conroe", NULL, "pc-q35-2.9", "level", 10); - add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.9/on", - "Conroe", "erms=on", "pc-i440fx-2.9", + add_cpuid_test("x86/cpuid/auto-level7/pc-q35-2.9/on", + "Conroe", "erms=on", "pc-q35-2.9", "level", 10); } @@ -371,12 +371,12 @@ int main(int argc, char **argv) * code on old machine-types. Just check that the compat code * is working correctly: */ - if (qtest_has_machine("pc-i440fx-2.4")) { - add_cpuid_test("x86/cpuid/xlevel-compat/pc-i440fx-2.4/npt-off", - "SandyBridge", NULL, "pc-i440fx-2.4", + if (qtest_has_machine("pc-q35-2.4")) { + add_cpuid_test("x86/cpuid/xlevel-compat/pc-q35-2.4/npt-off", + "SandyBridge", NULL, "pc-q35-2.4", "xlevel", 0x80000008); - add_cpuid_test("x86/cpuid/xlevel-compat/pc-i440fx-2.4/npt-on", - "SandyBridge", "svm=on,npt=on", "pc-i440fx-2.4", + add_cpuid_test("x86/cpuid/xlevel-compat/pc-q35-2.4/npt-on", + "SandyBridge", "svm=on,npt=on", "pc-q35-2.4", "xlevel", 0x80000008); } -- 2.47.1

On Fri, Jan 17, 2025 at 11:27:35AM +0100, Thomas Huth wrote:
While our new auto-disablement of old machine types will only kick in with the next (v10.1) release, the pc-i440fx-2.* machine types have been explicitly marked as deprecated via our old deprecation policy mechanism before (two releases ago), so it should be fine to remove them now already.
These were marked deprecated manually in 9.1.0 with: commit 792b4fdd4eb8197bd6eb9e80a1dfaf0cb3b54aeb Author: Philippe Mathieu-Daudé <philmd@linaro.org> Date: Wed Feb 28 10:34:35 2024 +0100 hw/i386/pc: Deprecate 2.4 to 2.12 pc-i440fx machines Similarly to the commit c7437f0ddb "docs/about: Mark the old pc-i440fx-2.0 - 2.3 machine types as deprecated", deprecate the 2.4 to 2.12 machines. but that commit was reverted a couple of weeks later in 9.1.0 dev when I added the automatic deprecation/deletion logic commit 37193b7b43b6a973e56fa115098c5895ebdc7145 Author: Daniel P. Berrangé <berrange@redhat.com> Date: Thu Jun 20 17:57:41 2024 +0100 hw/i386: remove obsolete manual deprecation reason string of i440fx machines IOW, in terms of releases, these deprecations were introduced under the new policy rather than the old policy.
Note that we can not do much additional clean ups on top yet since the corresponding q35 machines (which share the same compatibility knobs) are still around and only will be removed for the 10.1 release instead. So the bigger clean-up can only be done for 10.1, but removing the i440fx machine types now will still have at least a small benefit of accelerating our CI a little bit (since we don't have to run tests for these old machine types anymore).
FYI Philippe had a series removing i440fx 2.4 & 2.5 which includes alot of the extra cleanups: https://lists.nongnu.org/archive/html/qemu-devel/2025-01/msg02710.html 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 :|

On 17/01/2025 12.07, Daniel P. Berrangé wrote:
On Fri, Jan 17, 2025 at 11:27:35AM +0100, Thomas Huth wrote:
While our new auto-disablement of old machine types will only kick in with the next (v10.1) release, the pc-i440fx-2.* machine types have been explicitly marked as deprecated via our old deprecation policy mechanism before (two releases ago), so it should be fine to remove them now already.
These were marked deprecated manually in 9.1.0 with:
commit 792b4fdd4eb8197bd6eb9e80a1dfaf0cb3b54aeb Author: Philippe Mathieu-Daudé <philmd@linaro.org> Date: Wed Feb 28 10:34:35 2024 +0100
hw/i386/pc: Deprecate 2.4 to 2.12 pc-i440fx machines
Similarly to the commit c7437f0ddb "docs/about: Mark the old pc-i440fx-2.0 - 2.3 machine types as deprecated", deprecate the 2.4 to 2.12 machines.
but that commit was reverted a couple of weeks later in 9.1.0 dev
No, we did not revert that commit, the text is still there, so I think it still applies.
when I added the automatic deprecation/deletion logic
commit 37193b7b43b6a973e56fa115098c5895ebdc7145 Author: Daniel P. Berrangé <berrange@redhat.com> Date: Thu Jun 20 17:57:41 2024 +0100
hw/i386: remove obsolete manual deprecation reason string of i440fx machines
IOW, in terms of releases, these deprecations were introduced under the new policy rather than the old policy.
Why should your generic policy override an explicit statement for those machines?
Note that we can not do much additional clean ups on top yet since the corresponding q35 machines (which share the same compatibility knobs) are still around and only will be removed for the 10.1 release instead. So the bigger clean-up can only be done for 10.1, but removing the i440fx machine types now will still have at least a small benefit of accelerating our CI a little bit (since we don't have to run tests for these old machine types anymore).
FYI Philippe had a series removing i440fx 2.4 & 2.5 which includes alot of the extra cleanups:
Sure, I saw it, but since you question whether we can already start removing the q35 machines for 10.0, we cannot do the extra clean-ups yet. But in my opinion, we could at least start removing the i440fx machines that have an explicit deprecation statement. Thomas

On Fri, Jan 17, 2025 at 12:14:43PM +0100, Thomas Huth wrote:
On 17/01/2025 12.07, Daniel P. Berrangé wrote:
On Fri, Jan 17, 2025 at 11:27:35AM +0100, Thomas Huth wrote:
While our new auto-disablement of old machine types will only kick in with the next (v10.1) release, the pc-i440fx-2.* machine types have been explicitly marked as deprecated via our old deprecation policy mechanism before (two releases ago), so it should be fine to remove them now already.
These were marked deprecated manually in 9.1.0 with:
commit 792b4fdd4eb8197bd6eb9e80a1dfaf0cb3b54aeb Author: Philippe Mathieu-Daudé <philmd@linaro.org> Date: Wed Feb 28 10:34:35 2024 +0100
hw/i386/pc: Deprecate 2.4 to 2.12 pc-i440fx machines Similarly to the commit c7437f0ddb "docs/about: Mark the old pc-i440fx-2.0 - 2.3 machine types as deprecated", deprecate the 2.4 to 2.12 machines.
but that commit was reverted a couple of weeks later in 9.1.0 dev
No, we did not revert that commit, the text is still there, so I think it still applies.
Oh, you mean the text in deprecated.rst. I just reverted the manual deprecation in the code.
when I added the automatic deprecation/deletion logic
commit 37193b7b43b6a973e56fa115098c5895ebdc7145 Author: Daniel P. Berrangé <berrange@redhat.com> Date: Thu Jun 20 17:57:41 2024 +0100
hw/i386: remove obsolete manual deprecation reason string of i440fx machines
IOW, in terms of releases, these deprecations were introduced under the new policy rather than the old policy.
Why should your generic policy override an explicit statement for those machines?
I guess that's matter of opinion. I considered the policy to apply to all versioned machine types deprecated from 9.1.0 onwards. Having them mentioned in deprecated.rst doesn't alter the policy, IMHO, it is merely a bit of redundant documentation. 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 :|

On 17/1/25 11:27, Thomas Huth wrote:
While our new auto-disablement of old machine types will only kick in with the next (v10.1) release, the pc-i440fx-2.* machine types have been explicitly marked as deprecated via our old deprecation policy mechanism before (two releases ago), so it should be fine to remove them now already.
Note that we can not do much additional clean ups on top yet since the corresponding q35 machines (which share the same compatibility knobs) are still around and only will be removed for the 10.1 release instead. So the bigger clean-up can only be done for 10.1, but removing the i440fx machine types now will still have at least a small benefit of accelerating our CI a little bit (since we don't have to run tests for these old machine types anymore).
Thomas Huth (3): tests/qtest/test-x86-cpuid-compat: Remove tests related to pc-i440fx-2.3 hw/i386/pc_piix: Remove pc-i440fx-2.4 up to pc-i440fx-2.12 tests/qtest/test-x86-cpuid-compat: Replaced the removed pc-i440fx-2.* machines
Moving #3 before #2 seems a bit more logical to me :)
participants (5)
-
Daniel P. Berrangé
-
Fabiano Rosas
-
Kashyap Chamarthy
-
Philippe Mathieu-Daudé
-
Thomas Huth