Re: [PATCH v2 00/19] iommufd: Add VIOMMU infrastructure (Part-1)

Nicolin Chen
2024-09-25T18:56:12Z

On Wed, Sep 25, 2024 at 06:30:20PM +0800, Yi Liu wrote:
> Hi Nic,
>
> On 2024/8/28 00:59, Nicolin Chen wrote:
> > This series introduces a new VIOMMU infrastructure and related ioctls.
> >
> > IOMMUFD has been using the HWPT infrastructure for all cases, including a
> > nested IO page table support. Yet, there're limitations for an HWPT-based
> > structure to support some advanced HW-accelerated features, such as CMDQV
> > on NVIDIA Grace, and HW-accelerated vIOMMU on AMD. Even for a multi-IOMMU
> > environment, it is not straightforward for nested HWPTs to share the same
> > parent HWPT (stage-2 IO pagetable), with the HWPT infrastructure alone.
>
> could you elaborate a bit for the last sentence in the above paragraph?

Stage-2 HWPT/domain on ARM holds a VMID. If we share the parent
domain across IOMMU instances, we'd have to make sure that VMID
is available on all IOMMU instances. There comes the limitation
and potential resource starving, so not ideal.

Baolu told me that Intel may have the same: different domain IDs
on different IOMMUs; multiple IOMMU instances on one chip:
https://lore.kernel.org/linux-iommu/cf4fe15c-8bcb-4132-a1fd-b2c8ddf2731b@linux.intel.com/
So, I think we are having the same situation here.

Adding another vIOMMU wrapper on the other hand can allow us to
allocate different VMIDs/DIDs for different IOMMUs.

Thanks
Nic