SR-IOV on ARM64 system with SMMU

Martin Bayern martinbayern at outlook.com
Tue Feb 21 09:27:43 PST 2023


Hi Robin

thanks for your replying.

On 21.02.23 12:43 PM, Robin Murphy wrote:
> ...so given the implication that this is an older kernel, your 
> "internal error" below is almost certainly the -EINVAL from that check.
>
> The rest of the information here also points to why you have that 
> grouping, and unfortunately it appears that it's not just down to ACS 
> but to a fundamental limitation of that platform. Looking at the 
> upstream Tegra DTs which match that PCIe layout, it appears there's 
> only a single StreamID for each whole PCIe segment. Thus all the 
> devices and functions *have* to be grouped together since the SMMU has 
> not been given the ability to distinguish one's traffic from another's.
>
> Even if you could solve the platform device conundrum (which is not 
> reflected in the upstream DTs, and I can't speak for whether the 
> downstream kernel actually *needs* an "iommus" property there or not), 
> the best you'd be able to achieve on a system like that is to give the 
> whole group over to VFIO, PF and all. 

I tried to apply your patch to the current v5.10 kernel, there are so 
many sub-patches needed to be applied as well, so I give up that.  and 
then,  I tried to give the whole group over to VFIO, PF, and VFs, I 
cannot give the PCIe bridge to VFIO since I got a permission error.  
after that, I saw VF is in use by vfio-pci with lspci command, but try 
to start vm with virsh, but still got the same error.

martin at ubuntu:~$ virsh start --domain vm1
error: Failed to start domain vm1
error: internal error: Found invalid device link '141a0000.pcie' in 
'/sys/bus/pci/devices/0005:01:00.2/iommu_group/devices'

I'm going to completely give up on implementing SR-IOV on NVIDIA 
platforms, too bad I posted the same question on their forum with no 
response. So if you want to try SR-IOV on an ARM-based platform, don't 
use an NVIDIA Orin board.

do you have any idea which ARM-based platform can be used to implement 
SR-IOV?

Kind regards,

Martin




More information about the linux-arm-kernel mailing list