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, 15 hours ago

> -----Original Message-----
> From: Peter Maydell <peter.maydell@linaro.org>
> Sent: 23 January 2026 15:48
> To: Shameer Kolothum <skolothumtho@nvidia.com>
> 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
> 
> On Fri, 23 Jan 2026 at 15:33, Shameer Kolothum
> <skolothumtho@nvidia.com> wrote:
> > > stderr:
> > > acpi-test: Warning! IORT binary file mismatch. Actual
> > > [aml:/tmp/aml-7QQVJ3], Expected
> > > [aml:tests/data/acpi/aarch64/virt/IORT.its_off].
> >
> > Any way to retrieve these files?
> 
> They aren't in the "job artifacts", but you can probably do
> a patch to tweak the CI job to add them, push to your own
> gitlab fork of QEMU to have it run the CI, and then look at
> the results.

I forked your QEMU GitLab repo and pushed my series here:

https://gitlab.com/shamiali2008/qemu/-/commits/target-arm.next-smmuv3-accel

However, I am not seeing any CI jobs running on my fork. In the settings it
shows no assigned runners under Settings CI/CD/Runners, so it looks like
CI is not enabled.

TBH, I am not very familiar with GitLab CI, so I may be missing something
obvious. I will have another look at the settings...

Thanks,
Shameer
Re: [PATCH v8 00/37] hw/arm/virt: Add support for user-creatable accelerated SMMUv3
Posted by Peter Maydell 1 day, 15 hours ago
On Fri, 23 Jan 2026 at 16:59, Shameer Kolothum <skolothumtho@nvidia.com> wrote:
>
>
>
> > -----Original Message-----
> > From: Peter Maydell <peter.maydell@linaro.org>
> > Sent: 23 January 2026 15:48
> > To: Shameer Kolothum <skolothumtho@nvidia.com>
> > 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
> >
> > On Fri, 23 Jan 2026 at 15:33, Shameer Kolothum
> > <skolothumtho@nvidia.com> wrote:
> > > > stderr:
> > > > acpi-test: Warning! IORT binary file mismatch. Actual
> > > > [aml:/tmp/aml-7QQVJ3], Expected
> > > > [aml:tests/data/acpi/aarch64/virt/IORT.its_off].
> > >
> > > Any way to retrieve these files?
> >
> > They aren't in the "job artifacts", but you can probably do
> > a patch to tweak the CI job to add them, push to your own
> > gitlab fork of QEMU to have it run the CI, and then look at
> > the results.
>
> I forked your QEMU GitLab repo and pushed my series here:
>
> https://gitlab.com/shamiali2008/qemu/-/commits/target-arm.next-smmuv3-accel
>
> However, I am not seeing any CI jobs running on my fork. In the settings it
> shows no assigned runners under Settings CI/CD/Runners, so it looks like
> CI is not enabled.

You don't need to fork my repo, you can fork the upstream
QEMU one. Things aren't set up to run CI by default because
it would use up your gitlab CI quota. The docs on how to
do this are here:
https://www.qemu.org/docs/master/devel/testing/ci.html
-- you want to push it with the QEMU_CI=1 or =2 settings
to get it to run the CI. The docs suggest a git alias
that you can use to make this simpler.

-- PMM
RE: [PATCH v8 00/37] hw/arm/virt: Add support for user-creatable accelerated SMMUv3
Posted by Shameer Kolothum 1 day, 14 hours ago

> -----Original Message-----
> From: Peter Maydell <peter.maydell@linaro.org>
> Sent: 23 January 2026 17:12
> To: Shameer Kolothum <skolothumtho@nvidia.com>
> 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
> 
> External email: Use caution opening links or attachments
> 
> 
> On Fri, 23 Jan 2026 at 16:59, Shameer Kolothum
> <skolothumtho@nvidia.com> wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: Peter Maydell <peter.maydell@linaro.org>
> > > Sent: 23 January 2026 15:48
> > > To: Shameer Kolothum <skolothumtho@nvidia.com>
> > > 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
> > >
> > > On Fri, 23 Jan 2026 at 15:33, Shameer Kolothum
> > > <skolothumtho@nvidia.com> wrote:
> > > > > stderr:
> > > > > acpi-test: Warning! IORT binary file mismatch. Actual
> > > > > [aml:/tmp/aml-7QQVJ3], Expected
> > > > > [aml:tests/data/acpi/aarch64/virt/IORT.its_off].
> > > >
> > > > Any way to retrieve these files?
> > >
> > > They aren't in the "job artifacts", but you can probably do a patch
> > > to tweak the CI job to add them, push to your own gitlab fork of
> > > QEMU to have it run the CI, and then look at the results.
> >
> > I forked your QEMU GitLab repo and pushed my series here:
> >
> > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitl
> > ab.com%2Fshamiali2008%2Fqemu%2F-%2Fcommits%2Ftarget-arm.next-
> smmuv3-ac
> >
> cel&data=05%7C02%7Cskolothumtho%40nvidia.com%7Cc2d80db53d1c4e4
> 28abf08d
> >
> e5aa29cbd%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C6390
> 47851647858
> >
> 489%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIw
> LjAuMDAwMC
> >
> IsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&
> sdata=
> >
> ECtYwLUw5TDXOo%2BHzs4ZdGIfogVqgyPx%2BPKYxJUXF4o%3D&reserved=0
> >
> > However, I am not seeing any CI jobs running on my fork. In the
> > settings it shows no assigned runners under Settings CI/CD/Runners, so
> > it looks like CI is not enabled.
> 
> You don't need to fork my repo, you can fork the upstream QEMU one. Things
> aren't set up to run CI by default because it would use up your gitlab CI quota.
> The docs on how to do this are here:
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fww
> w.qemu.org%2Fdocs%2Fmaster%2Fdevel%2Ftesting%2Fci.html&data=05%7
> C02%7Cskolothumtho%40nvidia.com%7Cc2d80db53d1c4e428abf08de5aa2
> 9cbd%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C639047851
> 647877924%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUs
> IlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3
> D%7C0%7C%7C%7C&sdata=mC973PIuQ5lHxwu3Y19%2BYvOy0lkfWLGk6ejs
> fRkwJXo%3D&reserved=0
> -- you want to push it with the QEMU_CI=1 or =2 settings to get it to run the
> CI. The docs suggest a git alias that you can use to make this simpler.
> 

Thanks Peter, and appreciate the patience and pointers.

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.

Would appreciate it if anyone else familiar with the GitLab CI
setup could take a look, if possible, try to reproduce this, and
help get the IORT files in play here.

Thanks,
Shameer


 

RE: [PATCH v8 00/37] hw/arm/virt: Add support for user-creatable accelerated SMMUv3
Posted by Shameer Kolothum 1 day, 8 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