From: Baolu Lu <baolu.lu@linux.intel.com>
To: Yi Liu <yi.l.liu@intel.com>, kevin.tian@intel.com, jgg@nvidia.com
Cc: joro@8bytes.org, iommu@lists.linux.dev, nicolinc@nvidia.com
Subject: Re: [PATCH v8 07/12] iommufd: Enforce PASID-compatible domain for RID
Date: Thu, 27 Feb 2025 11:43:52 +0800 [thread overview]
Message-ID: <428e2657-6427-4aca-8e33-9d87dd9554c2@linux.intel.com> (raw)
In-Reply-To: <20250226114032.4591-8-yi.l.liu@intel.com>
On 2/26/25 19:40, Yi Liu wrote:
> Per the definition of IOMMU_HWPT_ALLOC_PASID, iommufd needs to enforce
> the RID to use PASID-compatible domain if PASID has been attached, and
> vice versa. The PASID path has already enforced it. This adds the
> enforcement in the RID path.
>
> This enforcement requires a lock across the RID and PASID attach path,
> the idev->igroup->lock is used as both the RID and the PASID path holds
> it.
>
> Signed-off-by: Yi Liu<yi.l.liu@intel.com>
> ---
> drivers/iommu/iommufd/device.c | 28 ++++++++++++++++++++++------
> 1 file changed, 22 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/iommu/iommufd/device.c b/drivers/iommu/iommufd/device.c
> index 30dd2f79491a..e0f097b04467 100644
> --- a/drivers/iommu/iommufd/device.c
> +++ b/drivers/iommu/iommufd/device.c
> @@ -357,6 +357,22 @@ iommufd_device_attach_reserved_iova(struct iommufd_device *idev,
>
> /* The device attach/detach/replace helpers for attach_handle */
>
> +static int iommufd_hwpt_pasid_compat(struct iommufd_hw_pagetable *hwpt,
> + struct iommufd_device *idev,
> + ioasid_t pasid)
> +{
> + lockdep_assert_held(&idev->igroup->lock);
> +
> + if (pasid == IOMMU_NO_PASID &&
> + !xa_empty(&idev->pasid_hwpts) && !hwpt->pasid_compat)
> + return -EINVAL;
> +
> + if (pasid != IOMMU_NO_PASID &&
> + (!idev->igroup->hwpt->pasid_compat || !hwpt->pasid_compat))
> + return -EINVAL;
> + return 0;
> +}
I'm not following this. Patch 05/12, which introduced the concept of
PASID-compatible domain, states, "AMD IOMMU requires attaching PASID-
compatible domains to PASID-capable devices." My understanding was that
if PASID is enabled on a device, the RID or PASID of that device should
only be configured with PASID-compatible domains.
However, the logic here differs. It seems that even if a device is
PASID-capable, it's allowed to attach a non-PASID-compatible domain to
the RID, if no domain is currently attached to the device's PASID. This
doesn't seem like a generic property.
Thanks,
baolu
next prev parent reply other threads:[~2025-02-27 3:47 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
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 [this message]
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=428e2657-6427-4aca-8e33-9d87dd9554c2@linux.intel.com \
--to=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 \
--cc=yi.l.liu@intel.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.