From: Yi Liu <yi.l.liu@intel.com>
To: Nicolin Chen <nicolinc@nvidia.com>
Cc: <kevin.tian@intel.com>, <jgg@nvidia.com>, <joro@8bytes.org>,
<baolu.lu@linux.intel.com>, <iommu@lists.linux.dev>
Subject: Re: [PATCH v8 01/12] iommu: Add iommu_attach_device_pasid_handle()
Date: Thu, 27 Feb 2025 09:27:12 +0800 [thread overview]
Message-ID: <db3df4f2-445a-49e5-9362-70cdaf363420@intel.com> (raw)
In-Reply-To: <Z7+SrQFXdheJQzuK@Asurada-Nvidia>
On 2025/2/27 06:16, Nicolin Chen wrote:
> On Wed, Feb 26, 2025 at 03:40:21AM -0800, Yi Liu wrote:
>> The existing iommu_attach_device_pasid() function allows both a valid
>> handle and a NULL handle, which is not consistent with the RID path where
>> iommu_attach_group() and iommu_attach_group_handle() coexist. To refine
>> it, this adds iommu_attach_device_pasid_handle() to cover the case with
>> valid handle, while let the iommu_attach_device_pasid() only deals with
>> the case with NULL handle.
>
> Hmm, I am not very sure about the necessity of this change. The
> underlying function being called from those two helpers (with/
> without handle) is still taking a NULL handle, which looks very
> straightforward to me already, so this extra layer feels a bit
> redundant..
I think I should have added a if (!handle) check in the beginning of
iommu_attach_device_pasid_handle() just like the other _handle() APIs.
If so, this should be clearer. is it?
>
>> @@ -130,8 +131,9 @@ struct iommu_sva *iommu_sva_bind_device(struct device *dev, struct mm_struct *mm
>> goto out_free_handle;
>> }
>>
>> - ret = iommu_attach_device_pasid(domain, dev, iommu_mm->pasid,
>> - &handle->handle);
> [..]
>> + ret = iommu_attach_device_pasid_handle(domain, dev,
>> + iommu_mm->pasid,
>
> These two could fit in one line.
got it.
>
>> if (ret)
>> goto out_free_domain;
>> domain->users = 1;
>> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
>> index 73a3b20b2ef9..f6dbb60ef948 100644
>> --- a/drivers/iommu/iommu.c
>> +++ b/drivers/iommu/iommu.c
>> @@ -3354,9 +3354,9 @@ static void __iommu_remove_group_pasid(struct iommu_group *group,
>> *
>> * Return: 0 on success, or an error.
>> */
>> -int iommu_attach_device_pasid(struct iommu_domain *domain,
>> - struct device *dev, ioasid_t pasid,
>> - struct iommu_attach_handle *handle)
>> +int __iommu_attach_device_pasid(struct iommu_domain *domain,
>> + struct device *dev, ioasid_t pasid,
>> + struct iommu_attach_handle *handle)
>
> Should it be just iommu_attach_device_pasid_handle?
>
>> +static inline int iommu_attach_device_pasid(struct iommu_domain *domain,
>> + struct device *dev, ioasid_t pasid)
>> +{
>> + return __iommu_attach_device_pasid(domain, dev, pasid, NULL);
>
> Then, here:
> return iommu_attach_device_pasid_handle(domain, dev, pasid, NULL);
> ?
>
>> +static inline int
>> +iommu_attach_device_pasid_handle(struct iommu_domain *domain,
>> + struct device *dev, ioasid_t pasid,
>> + struct iommu_attach_handle *handle)
>> +{
>> + return __iommu_attach_device_pasid(domain, dev, pasid, handle);
>
> And drop this?
this needs to check the handle before calling __iommu_attach_device_pasid().
>
>> @@ -1139,6 +1154,8 @@ struct iommu_fault_param {};
>> struct iommu_iotlb_gather {};
>> struct iommu_dirty_bitmap {};
>> struct iommu_dirty_ops {};
>> +struct iommu_attach_handle {};
>> +
>
> Nit: no need of the extra line
>
got it.
--
Regards,
Yi Liu
next prev parent reply other threads:[~2025-02-27 1:21 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-26 11:40 [PATCH v8 00/12] iommufd support pasid attach/replace Yi Liu
2025-02-26 11:40 ` [PATCH v8 01/12] iommu: Add iommu_attach_device_pasid_handle() Yi Liu
2025-02-26 13:58 ` Baolu Lu
2025-02-26 22:16 ` Nicolin Chen
2025-02-27 1:27 ` Yi Liu [this message]
2025-02-27 16:26 ` Nicolin Chen
2025-02-28 6:48 ` Yi Liu
2025-02-28 15:12 ` Jason Gunthorpe
2025-03-01 10:09 ` Yi Liu
2025-02-28 15:17 ` Jason Gunthorpe
2025-03-01 10:10 ` Yi Liu
2025-03-04 7:34 ` Tian, Kevin
2025-03-04 8:45 ` Yi Liu
2025-02-26 11:40 ` [PATCH v8 02/12] iommu: Introduce a replace API for device pasid Yi Liu
2025-02-26 23:11 ` Nicolin Chen
2025-02-27 1:43 ` Yi Liu
2025-02-27 16:04 ` Nicolin Chen
2025-02-28 14:12 ` Yi Liu
2025-03-01 4:46 ` Nicolin Chen
2025-03-01 10:12 ` Yi Liu
2025-02-27 1:31 ` Baolu Lu
2025-02-27 2:29 ` Yi Liu
2025-02-27 2:59 ` Baolu Lu
2025-02-28 15:21 ` Jason Gunthorpe
2025-03-04 7:42 ` Tian, Kevin
2025-03-04 8:49 ` Yi Liu
2025-03-05 2:36 ` Tian, Kevin
2025-02-26 11:40 ` [PATCH v8 03/12] iommufd: Pass @pasid through the device attach/replace path Yi Liu
2025-02-26 23:45 ` Nicolin Chen
2025-02-28 15:25 ` Jason Gunthorpe
2025-02-26 11:40 ` [PATCH v8 04/12] iommufd/device: Only add reserved_iova in non-pasid path Yi Liu
2025-02-27 0:05 ` Nicolin Chen
2025-02-27 1:50 ` Yi Liu
2025-02-27 16:31 ` Nicolin Chen
2025-02-28 14:03 ` Yi Liu
2025-02-28 15:24 ` Jason Gunthorpe
2025-03-01 10:12 ` Yi Liu
2025-03-04 7:43 ` Tian, Kevin
2025-02-26 11:40 ` [PATCH v8 05/12] iommufd: Mark PASID-compatible domain Yi Liu
2025-02-27 3:06 ` Baolu Lu
2025-02-27 18:58 ` Nicolin Chen
2025-02-28 15:27 ` Jason Gunthorpe
2025-02-26 11:40 ` [PATCH v8 06/12] iommufd: Support pasid attach/replace Yi Liu
2025-02-27 3:27 ` Baolu Lu
2025-02-27 4:19 ` Yi Liu
2025-02-27 20:15 ` Jason Gunthorpe
2025-02-28 14:13 ` Yi Liu
2025-02-28 15:32 ` Jason Gunthorpe
2025-03-01 11:44 ` Yi Liu
2025-03-03 17:48 ` Jason Gunthorpe
2025-03-04 7:59 ` Tian, Kevin
2025-02-26 11:40 ` [PATCH v8 07/12] iommufd: Enforce PASID-compatible domain for RID Yi Liu
2025-02-27 3:43 ` Baolu Lu
2025-02-27 5:16 ` Yi Liu
2025-02-28 19:39 ` Jason Gunthorpe
2025-03-04 8:00 ` Tian, Kevin
2025-02-26 11:40 ` [PATCH v8 08/12] iommu/vt-d: Add IOMMU_HWPT_ALLOC_PASID support Yi Liu
2025-02-27 3:46 ` Baolu Lu
2025-02-28 19:39 ` Jason Gunthorpe
2025-03-04 8:00 ` Tian, Kevin
2025-02-26 11:40 ` [PATCH v8 09/12] iommufd: Allow allocating PASID-compatible domain Yi Liu
2025-02-27 4:00 ` Baolu Lu
2025-02-27 5:34 ` Yi Liu
2025-02-27 20:17 ` Jason Gunthorpe
2025-02-28 19:56 ` Jason Gunthorpe
2025-03-04 8:08 ` Tian, Kevin
2025-03-04 11:48 ` Yi Liu
2025-03-05 2:38 ` Tian, Kevin
2025-03-13 13:17 ` Yi Liu
2025-03-17 15:35 ` Jason Gunthorpe
2025-02-26 11:40 ` [PATCH v8 10/12] iommufd/selftest: Add set_dev_pasid in mock iommu Yi Liu
2025-03-04 8:08 ` Tian, Kevin
2025-02-26 11:40 ` [PATCH v8 11/12] iommufd/selftest: Add test ops to test pasid attach/detach Yi Liu
2025-03-04 8:09 ` Tian, Kevin
2025-02-26 11:40 ` [PATCH v8 12/12] iommufd/selftest: Add coverage for iommufd " Yi Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=db3df4f2-445a-49e5-9362-70cdaf363420@intel.com \
--to=yi.l.liu@intel.com \
--cc=baolu.lu@linux.intel.com \
--cc=iommu@lists.linux.dev \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=nicolinc@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox