Re: [PATCH v10 04/12] iommu: Add attach/detach_dev_pasid iommu interface

From: Baolu Lu
Date: Wed Aug 03 2022 - 22:42:59 EST


On 2022/8/4 3:03, Jason Gunthorpe wrote:
On Wed, Aug 03, 2022 at 09:07:35PM +0800, Baolu Lu wrote:
+/**
+ * iommu_device_claim_pasid_owner() - Set ownership of a pasid on device
+ * @dev: the device.
+ * @pasid: the pasid of the device.
+ * @owner: caller specified pointer. Used for exclusive ownership.
+ *
+ * Return 0 if it is allowed, otherwise an error.
+ */
+int iommu_device_claim_pasid_owner(struct device *dev, ioasid_t pasid, void
*owner)

I don't see a use case for a special "pasid owner"

PASID is no different from normal DMA. If the calling driver already
has the proper ownership of the device/group then it is fine for that
driver to use any kind of IOMMU attachment, RID, PASID, whatever. It
doesn't matter *how* the attachment is made.

Agreed again.

The Linux kernel manages a device at the device driver level, and all
PASIDs are managed by a device driver. There is really no need to manage
ownership at the PASID level. The current DMA ownership mechanism can
manage the exclusions between kernel drivers and user space drivers.
Sorry that I over considered.

Remember the series that got dropped about converting all the drivers
to the new ownership scheme? That is how it should work - owernship
and domain attach are two different operations and do not get mixed
confusingly together. (and are you going to repost that series? It
would be great to get it done)

Yes, of cause. I have also some other pending tasks, lock-free page
table traversal, driver ATS interfaces, ownership scheme for kernel
drivers, blocking domain improvement, and etc. These are enough to keep
me busy for a while. :-) If anyone in the community is also interested
in any task, I will be grateful.

Best regards,
baolu