Thread (95 messages) 95 messages, 8 authors, 2024-10-17

RE: [PATCH v2 0/8] Initial support for SMMUv3 nested translation

From: Shameerali Kolothum Thodi <hidden>
Date: 2024-08-29 13:17:25
Also in: kvm, linux-acpi, linux-iommu, linux-patches

quoted hunk ↗ jump to hunk
-----Original Message-----
From: Nicolin Chen <redacted>
Sent: Wednesday, August 28, 2024 7:13 PM
To: Shameerali Kolothum Thodi <redacted>
Cc: Jason Gunthorpe <jgg@nvidia.com>; acpica-devel@lists.linux.dev;
Guohanjun (Hanjun Guo) [off-list ref];
iommu@lists.linux.dev; Joerg Roedel [off-list ref]; Kevin Tian
[off-list ref]; kvm@vger.kernel.org; Len Brown
[off-list ref]; linux-acpi@vger.kernel.org; linux-arm-
kernel@lists.infradead.org; Lorenzo Pieralisi [off-list ref]; Rafael J.
Wysocki [off-list ref]; Robert Moore [off-list ref];
Robin Murphy [off-list ref]; Sudeep Holla
[off-list ref]; Will Deacon [off-list ref]; Alex Williamson
[off-list ref]; Eric Auger [off-list ref]; Jean-
Philippe Brucker [off-list ref]; Moritz Fischer
[off-list ref]; Michael Shavit [off-list ref];
patches@lists.linux.dev; Mostafa Saleh [off-list ref]
Subject: Re: [PATCH v2 0/8] Initial support for SMMUv3 nested translation

On Wed, Aug 28, 2024 at 06:06:36PM +0000, Shameerali Kolothum Thodi
wrote:
quoted
quoted
quoted
quoted
As mentioned above, the VIOMMU series would be required to test
the
quoted
quoted
quoted
quoted
entire nesting feature, which now has a v2 rebasing on this series.
I tested it with a paring QEMU branch. Please refer to:
https://lore.kernel.org/linux-
iommu/cover.1724776335.git.nicolinc@nvidia.com/
Thanks for this. I haven't gone through the viommu and its Qemu
branch
quoted
quoted
quoted
yet.  The way we present nested-smmuv3/iommufd to the Qemu seems
to
quoted
quoted
quoted
have changed  with the above Qemu branch(multiple nested SMMUs).
The old Qemu command line for nested setup doesn't work anymore.

Could you please share an example Qemu command line  to verify this
series(Sorry, if I missed it in the links/git).
My bad. I updated those two "for_iommufd_" QEMU branches with a
README commit on top of each for the reference command.
Thanks. I did give it a go and this is my command line based on above,
quoted
But it fails to boot very early:

root@ubuntu:/home/shameer/qemu-test# ./qemu_run-simple-iommufd-
nicolin-2
quoted
qemu-system-aarch64-nicolin-viommu: Illegal numa node 2

Any idea what am I missing? Do you any special config enabled while
building Qemu?

Looks like you are running on a multi-SMMU platform :)

Would you please try syncing your local branch? That should work,
as the update also had a small change to the virt code:
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 161a28a311..a782909016 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -1640,7 +1640,7 @@ static PCIBus
*create_pcie_expander_bridge(VirtMachineState *vms, uint8_t idx)
     }

     qdev_prop_set_uint8(dev, "bus_nr", bus_nr);
-    qdev_prop_set_uint16(dev, "numa_node", idx);
+    qdev_prop_set_uint16(dev, "numa_node", 0);
     qdev_realize_and_unref(dev, BUS(bus), &error_fatal);
That makes some progress. But still I am not seeing the assigned
dev  in Guest.

-device vfio-pci-nohotplug,host=0000:75:00.1,iommufd=iommufd0

root@ubuntu:/# lspci -tv#

root@ubuntu:/# lspci -tv
-+-[0000:ca]---00.0-[cb]--
 \-[0000:00]-+-00.0  Red Hat, Inc. QEMU PCIe Host bridge
             +-01.0  Red Hat, Inc Virtio network device
             +-02.0  Red Hat, Inc. QEMU PCIe Expander bridge
             +-03.0  Red Hat, Inc. QEMU PCIe Expander bridge
             +-04.0  Red Hat, Inc. QEMU PCIe Expander bridge
             +-05.0  Red Hat, Inc. QEMU PCIe Expander bridge
             +-06.0  Red Hat, Inc. QEMU PCIe Expander bridge
             +-07.0  Red Hat, Inc. QEMU PCIe Expander bridge
             +-08.0  Red Hat, Inc. QEMU PCIe Expander bridge
             \-09.0  Red Hat, Inc. QEMU PCIe Expander bridge

The new root port is created, but no device attached.

But without iommufd,
-device vfio-pci-nohotplug,host=0000:75:00.1

root@ubuntu:/# lspci -tv
-[0000:00]-+-00.0  Red Hat, Inc. QEMU PCIe Host bridge
           +-01.0  Red Hat, Inc Virtio network device
           +-02.0  Red Hat, Inc. QEMU PCIe Expander bridge
           +-03.0  Red Hat, Inc. QEMU PCIe Expander bridge
           +-04.0  Red Hat, Inc. QEMU PCIe Expander bridge
           +-05.0  Red Hat, Inc. QEMU PCIe Expander bridge
           +-06.0  Red Hat, Inc. QEMU PCIe Expander bridge
           +-07.0  Red Hat, Inc. QEMU PCIe Expander bridge
           +-08.0  Red Hat, Inc. QEMU PCIe Expander bridge
           +-09.0  Red Hat, Inc. QEMU PCIe Expander bridge
           \-0a.0  Huawei Technologies Co., Ltd. Device a251

We can see dev a251.

And yes the setup has multiple SMMUs(8).

Thanks,
Shameer

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help