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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.