Messages in this thread | | | Date | Wed, 1 Feb 2023 14:49:08 +0800 | Subject | Re: [PATCH v2 3/3] iommufd/device: Change iommufd_hw_pagetable_has_group to device centric | From | Baolu Lu <> |
| |
On 2023/2/1 11:07, Tian, Kevin wrote: >> From: Nicolin Chen <nicolinc@nvidia.com> >> Sent: Monday, January 30, 2023 6:22 PM >> >> On Sun, Jan 29, 2023 at 02:38:55AM -0800, Nicolin Chen wrote: >> >>>>> @@ -385,10 +372,8 @@ void iommufd_device_detach(struct >>>>> iommufd_device *idev) >>>>> struct iommufd_hw_pagetable *hwpt = idev->hwpt; >>>>> >>>>> mutex_lock(&hwpt->ioas->mutex); >>>>> - mutex_lock(&hwpt->devices_lock); >>>>> refcount_dec(hwpt->devices_users); >>>>> - list_del(&idev->devices_item); >>>>> - if (!iommufd_hw_pagetable_has_group(hwpt, idev->group)) { >>>>> + if (iommufd_hw_pagetable_has_device(hwpt, idev->dev)) { >>>>> if (refcount_read(hwpt->devices_users) == 1) { >>>>> iopt_table_remove_domain(&hwpt->ioas->iopt, >>>>> hwpt->domain); >>>>> @@ -397,7 +382,6 @@ void iommufd_device_detach(struct >> iommufd_device >>>>> *idev) >>>>> iommu_detach_group(hwpt->domain, idev->group); >>>>> } >>>> >>>> emmm how do we track last device detach in a group? Here the first >>>> device detach already leads to group detach... >>> >>> Oh no. That's a bug. Thanks for catching it. >>> >>> We need an additional refcount somewhere to track the number of >>> attached devices in the iommu_group. >> >> Wondering if we can let iommu_attach/detach_device handle this: >> > > that is the desired way to fully remove group awareness in iommufd. > > but iirc there were some concerns on changing their semantics. But > I don't remember the detail now. Jason might know. also +Baolu/Robin. > > otherwise as long as the group attach/detach continues to be used > then identifying last device in the group always needs some hack > within iommufd itself.
I have tried to solve this problem.
https://lore.kernel.org/linux-iommu/20220106022053.2406748-1-baolu.lu@linux.intel.com/
I may need to review the original discussion to see if I can update a new version.
Best regards, baolu
| |