[PATCH] hw/i386/pc_piix: Mark the machine types from version 1.4 to 1.7 as deprecated

Thomas Huth posted 1 patch 2 years, 2 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220117191639.278497-1-thuth@redhat.com
Maintainers: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Eduardo Habkost <eduardo@habkost.net>, "Michael S. Tsirkin" <mst@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>
docs/about/deprecated.rst | 8 ++++++++
hw/i386/pc_piix.c         | 1 +
2 files changed, 9 insertions(+)
[PATCH] hw/i386/pc_piix: Mark the machine types from version 1.4 to 1.7 as deprecated
Posted by Thomas Huth 2 years, 2 months ago
The list of machine types grows larger and larger each release ... and
it is unlikely that many people still use the very old ones for live
migration. QEMU v1.7 has been released more than 8 years ago, so most
people should have updated their machines to a newer version in those
8 years at least once. Thus let's mark the very old 1.x machine types
as deprecated now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 docs/about/deprecated.rst | 8 ++++++++
 hw/i386/pc_piix.c         | 1 +
 2 files changed, 9 insertions(+)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index e21e07478f..652a4d43b6 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -318,6 +318,14 @@ machine is hardly emulated at all (e.g. neither the LCD nor the USB part had
 been implemented), so there is not much value added by this board. Use the
 ``ref405ep`` machine instead.
 
+``pc-i440fx-1.4`` up to ``pc-i440fx-1.7`` (since 7.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+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.
+
+
 Backend options
 ---------------
 
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index d9b344248d..84f3633223 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -757,6 +757,7 @@ static void pc_i440fx_1_7_machine_options(MachineClass *m)
     m->hw_version = "1.7.0";
     m->default_machine_opts = NULL;
     m->option_rom_has_mr = true;
+    m->deprecation_reason = "old and unattended - use a newer version instead";
     compat_props_add(m->compat_props, pc_compat_1_7, pc_compat_1_7_len);
     pcmc->smbios_defaults = false;
     pcmc->gigabyte_align = false;
-- 
2.27.0


Re: [PATCH] hw/i386/pc_piix: Mark the machine types from version 1.4 to 1.7 as deprecated
Posted by Daniel P. Berrangé 2 years, 2 months ago
On Mon, Jan 17, 2022 at 08:16:39PM +0100, Thomas Huth wrote:
> The list of machine types grows larger and larger each release ... and
> it is unlikely that many people still use the very old ones for live
> migration. QEMU v1.7 has been released more than 8 years ago, so most
> people should have updated their machines to a newer version in those
> 8 years at least once. Thus let's mark the very old 1.x machine types
> as deprecated now.

What criteria did you use for picking v1.7 as the end point ?

I'm fine with the idea of aging out machine types, but I'd like us
to explain the criteria we use for this, so that we can set clear
expectations for users. I'm not a fan of adhoc decisions that have
different impact every time we randomly decide to apply them.

A simple rule could be time based - eg we could say

  "we'll keep machine type versions for 5 years or 15 releases."

one factor is how long our downstream consumers have been keeping
machines around for.

In RHEL-9 for example, the oldest machine is "pc-i440fx-rhel7.6.0"
which IIUC is derived from QEMU 2.12.0. RHEL-9 is likely to rebase
QEMU quite a few times over the coming years, so that 2.12.0 version
sets an example baseline for how long machines might need to live for.
That's 4 years this April, and could potentially be 6-7 years by the
time RHEL-9 stops rebasing QEMU.

> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  docs/about/deprecated.rst | 8 ++++++++
>  hw/i386/pc_piix.c         | 1 +
>  2 files changed, 9 insertions(+)
> 
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index e21e07478f..652a4d43b6 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -318,6 +318,14 @@ machine is hardly emulated at all (e.g. neither the LCD nor the USB part had
>  been implemented), so there is not much value added by this board. Use the
>  ``ref405ep`` machine instead.
>  
> +``pc-i440fx-1.4`` up to ``pc-i440fx-1.7`` (since 7.0)
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +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.
> +
> +
>  Backend options
>  ---------------
>  
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index d9b344248d..84f3633223 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -757,6 +757,7 @@ static void pc_i440fx_1_7_machine_options(MachineClass *m)
>      m->hw_version = "1.7.0";
>      m->default_machine_opts = NULL;
>      m->option_rom_has_mr = true;
> +    m->deprecation_reason = "old and unattended - use a newer version instead";
>      compat_props_add(m->compat_props, pc_compat_1_7, pc_compat_1_7_len);
>      pcmc->smbios_defaults = false;
>      pcmc->gigabyte_align = false;
> -- 
> 2.27.0
> 

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 :|


Re: [PATCH] hw/i386/pc_piix: Mark the machine types from version 1.4 to 1.7 as deprecated
Posted by Thomas Huth 2 years, 2 months ago
On 17/01/2022 21.12, Daniel P. Berrangé wrote:
> On Mon, Jan 17, 2022 at 08:16:39PM +0100, Thomas Huth wrote:
>> The list of machine types grows larger and larger each release ... and
>> it is unlikely that many people still use the very old ones for live
>> migration. QEMU v1.7 has been released more than 8 years ago, so most
>> people should have updated their machines to a newer version in those
>> 8 years at least once. Thus let's mark the very old 1.x machine types
>> as deprecated now.
> 
> What criteria did you use for picking v1.7 as the end point ?

I picked everything starting with a "1." this time ;-)

No, honestly, since we don't have a deprecation policy in place yet, there 
was no real good criteria around this time. For the machine types < 1.3 
there was a bug with migration, so these machine types could not be used for 
reliable migration anymore anyway. But for the newer machine types, we 
likely have to decide by other means indeed.

> I'm fine with the idea of aging out machine types, but I'd like us
> to explain the criteria we use for this, so that we can set clear
> expectations for users. I'm not a fan of adhoc decisions that have
> different impact every time we randomly decide to apply them.
> 
> A simple rule could be time based - eg we could say
> 
>    "we'll keep machine type versions for 5 years or 15 releases."
> 
> one factor is how long our downstream consumers have been keeping
> machines around for.
> 
> In RHEL-9 for example, the oldest machine is "pc-i440fx-rhel7.6.0"
> which IIUC is derived from QEMU 2.12.0. RHEL-9 is likely to rebase
> QEMU quite a few times over the coming years, so that 2.12.0 version
> sets an example baseline for how long machines might need to live for.
> That's 4 years this April, and could potentially be 6-7 years by the
> time RHEL-9 stops rebasing QEMU.

Yeah, 5 years still seemed a little bit short to me, that's one of the 
reasons why I did not add more machine types in my patch here. I think with 
7 or 8 years, we should be on the safe side.

Any other opinions? And if we agree on an amount of years, where should we 
document this? At the top of docs/about/deprecated.rst?

  Thomas


Re: [PATCH] hw/i386/pc_piix: Mark the machine types from version 1.4 to 1.7 as deprecated
Posted by Thomas Huth 2 years, 1 month ago
On 17/01/2022 20.16, Thomas Huth wrote:
> The list of machine types grows larger and larger each release ... and
> it is unlikely that many people still use the very old ones for live
> migration. QEMU v1.7 has been released more than 8 years ago, so most
> people should have updated their machines to a newer version in those
> 8 years at least once. Thus let's mark the very old 1.x machine types
> as deprecated now.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   docs/about/deprecated.rst | 8 ++++++++
>   hw/i386/pc_piix.c         | 1 +
>   2 files changed, 9 insertions(+)
> 
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index e21e07478f..652a4d43b6 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -318,6 +318,14 @@ machine is hardly emulated at all (e.g. neither the LCD nor the USB part had
>   been implemented), so there is not much value added by this board. Use the
>   ``ref405ep`` machine instead.
>   
> +``pc-i440fx-1.4`` up to ``pc-i440fx-1.7`` (since 7.0)
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +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.
> +
> +
>   Backend options
>   ---------------
>   
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index d9b344248d..84f3633223 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -757,6 +757,7 @@ static void pc_i440fx_1_7_machine_options(MachineClass *m)
>       m->hw_version = "1.7.0";
>       m->default_machine_opts = NULL;
>       m->option_rom_has_mr = true;
> +    m->deprecation_reason = "old and unattended - use a newer version instead";
>       compat_props_add(m->compat_props, pc_compat_1_7, pc_compat_1_7_len);
>       pcmc->smbios_defaults = false;
>       pcmc->gigabyte_align = false;

*ping*

Seems like the discussion about marking old machine types ceased very 
quickly ... but since nobody has written any concerns against this patch 
here, could we at least agree to apply this patch to get the deprecation 
timer started again for some machine types in 7.0 ?

  Thomas