+Stefan

On 7/5/26 21:47, Peter Maydell wrote:
When we updated Arm and AArch64 board types to mark them for the
target_machine_typename() filter, we forgot about the "x-remote"
machine type, which meant that it disappeared from the set of board
types exposed on the qemu-system-arm and qemu-system-aarch64
binaries.  We didn't notice this, because although we have a
functional test for it, it requires the KVM accelerator and we don't

I don't remember why it requires KVM.

$ git grep -i kvm hw/remote/
hw/remote/Kconfig:3:    depends on PCI && PCI_EXPRESS && KVM
hw/remote/proxy.c:36: kvm_irqchip_remove_irqfd_notifier_gsi(kvm_state, &dev->intr, dev->virq); hw/remote/proxy.c:45: kvm_irqchip_add_irqfd_notifier_gsi(kvm_state, &dev->intr,

I suppose these 2 calls should be replaced by generic equivalents:
- accel_irqchip_remove_irqfd_notifier_gsi()
- accel_irqchip_add_irqfd_notifier_gsi()

run the functional tests on an AArch64 host in CI.

Mark the machine as being OK to expose in qemu-system-arm and

Otherwise if it is tied to KVM, we removed support for 32-bit ARM
KVM in commit 82bf7ae84ce; ...

qemu-system-aarch64, in the same way we do for the "none" machine
type. This fixes a check-functional failure on aarch64 host, where
it would otherwise fail with:
    qemu-system-aarch64: unsupported machine type: "x-remote"

Cc: [email protected]
Fixes: eb796c55513d9d39 ("hw/core: Allow ARM/Aarch64 binaries to use the 'none' 
machine")
Signed-off-by: Peter Maydell <[email protected]>
---
I couldn't figure out which git commit started enforcing the
filtering of machine types based on the TARGET_FOO_MACHINE
interface markings, so I picked the Fixes: commit hash for when
we added them to the "none" machine, on the basis that that's
the point at which we logically ought to have also done x-remote.
---
  hw/remote/machine.c | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/hw/remote/machine.c b/hw/remote/machine.c
index ced782f6a9..df08f64019 100644
--- a/hw/remote/machine.c
+++ b/hw/remote/machine.c
@@ -24,6 +24,7 @@
  #include "hw/core/qdev.h"
  #include "hw/remote/vfio-user-obj.h"
  #include "hw/pci/msi.h"
+#include "hw/arm/machines-qom.h"
static void remote_machine_init(MachineState *machine)
  {
@@ -148,6 +149,8 @@ static const TypeInfo remote_machine = {
      .class_init = remote_machine_class_init,
      .interfaces = (const InterfaceInfo[]) {
          { TYPE_HOTPLUG_HANDLER },
+        { TYPE_TARGET_AARCH64_MACHINE },
+        { TYPE_TARGET_ARM_MACHINE },

... so exposing this machine on 32-bit host binary doesn't
look right.

          { }
      }
  };


Reply via email to