RE: [PATCH v8 00/37] hw/arm/virt: Add support for user-creatable accelerated SMMUv3

Shameer Kolothum posted 37 patches 1 day, 15 hours ago
Only 0 patches received!
There is a newer version of this series
RE: [PATCH v8 00/37] hw/arm/virt: Add support for user-creatable accelerated SMMUv3
Posted by Shameer Kolothum 1 day, 10 hours ago


> -----Original Message-----
> From: Shameer Kolothum <skolothumtho@nvidia.com>
> Sent: 23 January 2026 18:23
> To: Peter Maydell <peter.maydell@linaro.org>
> Cc: Jonathan Cameron <jonathan.cameron@huawei.com>; Eric Auger
> <eric.auger@redhat.com>; qemu-arm@nongnu.org; qemu-
> devel@nongnu.org; Richard Henderson <richard.henderson@linaro.org>;
> Jason Gunthorpe <jgg@nvidia.com>; Nicolin Chen <nicolinc@nvidia.com>;
> ddutile@redhat.com; berrange@redhat.com; clg@redhat.com;
> alex@shazbot.org; Nathan Chen <nathanc@nvidia.com>; Matt Ochs
> <mochs@nvidia.com>; smostafa@google.com; wangzhou1@hisilicon.com;
> jiangkunkun@huawei.com; zhangfei.gao@linaro.org;
> zhenzhong.duan@intel.com; yi.l.liu@intel.com; Krishnakant Jaju
> <kjaju@nvidia.com>
> Subject: RE: [PATCH v8 00/37] hw/arm/virt: Add support for user-creatable
> accelerated SMMUv3
> 
> 
 
> Thanks Peter, and appreciate the patience and pointers.

Ok. I manged to trigger the CI jobs.
 
> I deleted the earlier forks and created a fresh one directly
> from upstream QEMU. I cloned it locally and created a branch
> with the accel patches, and:
> 
> git push -o ci.variable="QEMU_CI=2" origin master-smmuv3-accel-v8
> 
> I tried QEMU_CI=1 as well.
> 
> However, I’m still not seeing any CI jobs or pipelines show up.
> I may be missing something obvious here and will have another
> look over the weekend if possible.

I was missing the:

Settings --> CI/CD --> Runners --> Variables --> Minimum role to use
pipeline variables

The above was set to None. Changing it to "Owner" fixed the issue
and CI started working.

And to copy the /tmp/aml-* file, changed:

diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index e9b5b05e6e..73c5e36ec3 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -288,6 +288,14 @@ check-system-opensuse:
   variables:
     IMAGE: opensuse-leap
     MAKE_CHECK_ARGS: check
+  after_script:
+    - mkdir -p aml-debug-files
+    - cp /tmp/aml-* aml-debug-files/ || true
+  artifacts:
+    when: always
+    paths:
+      - aml-debug-files/
+    expire_in: 2 days

The generated IORT and the IORT.its_off reference were indeed 
different, with ATS and RMR present. It shouldn’t have either of
those as it is using the legacy-smmuv3.

The issue was not initialising the AcpiIortSMMUv3Dev sdev in
virt-acpi-build.c.

With the below fix,

diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index 60d8fda755..9126aae346 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -356,7 +356,7 @@ typedef struct AcpiIortSMMUv3Dev {
 static int populate_smmuv3_legacy_dev(GArray *sdev_blob)
 {
     VirtMachineState *vms = VIRT_MACHINE(qdev_get_machine());
-    AcpiIortSMMUv3Dev sdev;
+    AcpiIortSMMUv3Dev sdev = { 0 };

     sdev.rc_smmu_idmaps = g_array_new(false, true, sizeof(AcpiIortIdMapping));
     object_child_foreach_recursive(object_get_root(), iort_host_bridges,
@@ -391,7 +391,7 @@ static int iort_smmuv3_devices(Object *obj, void *opaque)
     GArray *sdev_blob = opaque;
     AcpiIortIdMapping idmap;
     PlatformBusDevice *pbus;
-    AcpiIortSMMUv3Dev sdev;
+    AcpiIortSMMUv3Dev sdev = { 0 };
     int min_bus, max_bus;
     SysBusDevice *sbdev;
     PCIBus *bus;

The CI test is now successful.
...
  1/457 qemu:qtest+qtest-x86_64 / qtest-x86_64/bios-tables-test              OK              83.38s   55 subtests passed
  2/457 qemu:qtest+qtest-aarch64 / qtest-aarch64/bios-tables-test            OK              89.71s   14 subtests passed
  3/457 qemu:qtest+qtest-s390x / qtest-s390x/qom-test                        OK               0.90s   3 subtests passed
...

I will respin this as v9.

Thanks,
Shameer




  • RE: [PATCH v8 00/37] hw/arm/virt: Add support for user-creatable accelerated SMMUv3