qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH for-9.0] docs/about: Mark the iaspc machine type as deprecate


From: Mark Cave-Ayland
Subject: Re: [PATCH for-9.0] docs/about: Mark the iaspc machine type as deprecated
Date: Tue, 26 Mar 2024 13:30:48 +0000
User-agent: Mozilla Thunderbird

On 26/03/2024 12:51, Igor Mammedov wrote:

ISAPC machine was introduced 25 years ago and it's a lot of time since
such machine was around with real ISA only PC hardware practically defunct.
Also it's slowly bit-rots (for example: I was able to boot RHEL6 on RHEL9 host
in only TCG mode, while in KVM mode it hung in the middle of boot)

Rather than spending time on fixing 'the oldest' no longer tested machine type,
deprecate it so we can clean up QEMU code from legacy fixups and hopefully
make it easier to follow.

Folks who have to use ancient guest that requires ISAPC can still
use older QEMU to play with it.

Heh I've actually been using isapc over the past couple of weeks to fire up some old programs in a Windows 3 VM :)

I'd really hate to see isapc disappear as there are a number of people from the retro crowd (such as myself) who fire up QEMU/KVM on various historical images, and whilst there are alternatives, there isn't really anything that touches QEMU performance-wise.

This leads into the question as to how QEMU should handle less recent machines: I appreciate that from an enterprise perspective there is little interest, but there are plenty of hobbyists and historians who are.

From my personal experience with SPARC/macppc machines I accept that they are not first-class citizens, and so my approach here is that I don't mind if patches break migration or command-line compatibility as long as I can still fire up the VM. Regressions do occur, but fortunately they don't tend to occur that often.

I can see how there is a lot of legacy cruft around handling legacy command line options that could be improved by removing isapc, and I think that a lot of this is around preserving historical behaviour.

How about splitting the isapc machine out of the generic PC init so that it can be used going forward with less command-line/migration compatibility guarantees, but also won't prevent subsequent tidy-ups/changes to the main PC machines going forward?

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
  docs/about/deprecated.rst | 7 +++++++
  hw/i386/pc_piix.c         | 1 +
  2 files changed, 8 insertions(+)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 7b548519b5..5708296991 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -226,6 +226,13 @@ 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.
+``isapc`` (since 9.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+These old machine type are quite neglected nowadays and thus might have
+various pitfalls with regards to live migration. Use a newer machine type
+instead.
+
  Nios II ``10m50-ghrd`` and ``nios2-generic-nommu`` machines (since 8.2)
  '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 18ba076609..96f72384dd 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -921,6 +921,7 @@ static void isapc_machine_options(MachineClass *m)
      m->default_nic = "ne2k_isa";
      m->default_cpu_type = X86_CPU_TYPE_NAME("486");
      m->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);
+    m->deprecation_reason = "old and unattended - use a newer version instead";
  }
DEFINE_PC_MACHINE(isapc, "isapc", pc_init_isa,


ATB,

Mark.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]