mbox series

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

Message ID 20250117102738.59714-1-thuth@redhat.com (mailing list archive)
Headers show
Series Remove deprecated machines pc-i440fx-2.4 up to pc-i440fx-2.12 | expand

Message

Thomas Huth Jan. 17, 2025, 10:27 a.m. UTC
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(-)

Comments

Daniel P. Berrangé Jan. 17, 2025, 11:07 a.m. UTC | #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
Thomas Huth Jan. 17, 2025, 11:14 a.m. UTC | #2
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
Daniel P. Berrangé Jan. 17, 2025, 11:25 a.m. UTC | #3
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
Philippe Mathieu-Daudé Jan. 17, 2025, 4:52 p.m. UTC | #4
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 :)