Re: [PATCH v6 04/10] iommu: Extend domain attach group with handle support

From: Baolu Lu
Date: Thu Jun 13 2024 - 00:50:28 EST


On 6/12/24 9:41 PM, Jason Gunthorpe wrote:
On Mon, May 27, 2024 at 12:05:11PM +0800, Lu Baolu wrote:
Unlike the SVA case where each PASID of a device has an SVA domain
attached to it, the I/O page faults are handled by the fault handler
of the SVA domain. The I/O page faults for a user page table might
be handled by the domain attached to RID or the domain attached to
the PASID, depending on whether the PASID table is managed by user
space or kernel. As a result, there is a need for the domain attach
group interfaces to have attach handle support. The attach handle
will be forwarded to the fault handler of the user domain.

Add some variants of the domain attaching group interfaces so that they
could support the attach handle and export them for use in IOMMUFD.

Signed-off-by: Lu Baolu<baolu.lu@xxxxxxxxxxxxxxx>
---
drivers/iommu/iommu-priv.h | 8 +++
drivers/iommu/iommu.c | 99 ++++++++++++++++++++++++++++++++++++++
2 files changed, 107 insertions(+)
I don't have an objection to it like this, but I wonder if we could be
smaller to teach iommu_attach_device_pasid to use IOMMU_NO_PASID to
attach the handle to the rid?

It would have an if there to call the __iommu_attach_group() instead
of the pasid attach ?

This is a good idea. I guess that in the future, we will have
iommu_attach_device_pasid(IOMMU_NO_PASID) to replace
iommu_attach_group(). The group->domain and domain_ops::attach_dev will
also be removed.

I'd suggest making such refactoring in a separate series with wider
discussions. For now, let's make this special interface for iommufd.

Best regards,
baolu