From: Pranjal Shrivastava <praan@google.com>
To: Jacob Pan <jacob.pan@linux.microsoft.com>
Cc: linux-kernel@vger.kernel.org,
"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
Jason Gunthorpe <jgg@nvidia.com>,
Alex Williamson <alex@shazbot.org>,
Joerg Roedel <joro@8bytes.org>,
Mostafa Saleh <smostafa@google.com>,
David Matlack <dmatlack@google.com>,
Robin Murphy <robin.murphy@arm.com>,
Nicolin Chen <nicolinc@nvidia.com>,
"Tian, Kevin" <kevin.tian@intel.com>, Yi Liu <yi.l.liu@intel.com>,
Baolu Lu <baolu.lu@linux.intel.com>,
Saurabh Sengar <ssengar@linux.microsoft.com>,
skhawaja@google.com, pasha.tatashin@soleen.com,
Will Deacon <will@kernel.org>
Subject: Re: [PATCH v9 3/6] iommufd: Allow binding to a noiommu device
Date: Tue, 16 Jun 2026 20:38:24 +0000 [thread overview]
Message-ID: <ajG0QK08xQ0SaeVv@google.com> (raw)
In-Reply-To: <20260611172658.3421138-4-jacob.pan@linux.microsoft.com>
On Thu, Jun 11, 2026 at 10:26:55AM -0700, Jacob Pan wrote:
> From: Jason Gunthorpe <jgg@nvidia.com>
>
> Allow iommufd to bind devices without an IOMMU (noiommu mode) by creating
> a dummy igroup for such devices and skipping hwpt operations.
>
> This enables noiommu devices to operate through the same iommufd API as IOMMU-
> capable devices.
>
> Reviewed-by: Kevin Tian <kevin.tian@intel.com>
> Reviewed-by: Yi Liu <yi.l.liu@intel.com>
> Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
> Signed-off-by: Jacob Pan <jacob.pan@linux.microsoft.com>
[...]
> +/*
> + * Detect a noiommu device for the cdev path. We check dev->iommu rather than
> + * using device_iommu_mapped() (which checks dev->iommu_group) because when
> + * both group and cdev interfaces coexist, the group path assigns a fake
> + * noiommu iommu_group to the device. That would cause device_iommu_mapped()
> + * to return true and hide the noiommu case from the cdev path. dev->iommu is
> + * reliably NULL when no IOMMU driver is managing the device.
> + */
> +static bool iommufd_device_is_noiommu(struct iommufd_device *idev)
> +{
> + return IS_ENABLED(CONFIG_IOMMUFD_NOIOMMU) && !idev->dev->iommu;
> +}
> +
Helpful comment! Thanks :)
> static void iommufd_group_release(struct kref *kref)
> {
> struct iommufd_group *igroup =
> @@ -30,9 +43,11 @@ static void iommufd_group_release(struct kref *kref)
>
> WARN_ON(!xa_empty(&igroup->pasid_attach));
>
> - xa_cmpxchg(&igroup->ictx->groups, iommu_group_id(igroup->group), igroup,
> - NULL, GFP_KERNEL);
> - iommu_group_put(igroup->group);
> + if (igroup->group) {
> + xa_cmpxchg(&igroup->ictx->groups, iommu_group_id(igroup->group),
> + igroup, NULL, GFP_KERNEL);
> + iommu_group_put(igroup->group);
> + }
> mutex_destroy(&igroup->lock);
> kfree(igroup);
> }
Reviewed-by: Pranjal Shrivastava <praan@google.com>
Thanks,
Praan
next prev parent reply other threads:[~2026-06-16 20:38 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-11 17:26 [PATCH v9 0/6] iommufd: Enable noiommu mode for cdev Jacob Pan
2026-06-11 17:26 ` [PATCH v9 1/6] iommufd: Support a HWPT without an iommu driver for noiommu Jacob Pan
2026-06-16 6:00 ` Yi Liu
2026-06-16 20:18 ` Pranjal Shrivastava
2026-06-17 0:09 ` Jason Gunthorpe
2026-06-11 17:26 ` [PATCH v9 2/6] iommufd: Move igroup allocation to a function Jacob Pan
2026-06-16 20:23 ` Pranjal Shrivastava
2026-06-11 17:26 ` [PATCH v9 3/6] iommufd: Allow binding to a noiommu device Jacob Pan
2026-06-16 20:38 ` Pranjal Shrivastava [this message]
2026-06-11 17:26 ` [PATCH v9 4/6] iommufd: Add an ioctl to query PA from IOVA for noiommu mode Jacob Pan
2026-06-16 6:00 ` Yi Liu
2026-06-16 21:40 ` Pranjal Shrivastava
2026-06-11 17:26 ` [PATCH v9 5/6] vfio: Enable cdev noiommu mode under iommufd Jacob Pan
2026-06-11 23:14 ` Alex Williamson
2026-06-16 6:00 ` Yi Liu
2026-06-16 22:03 ` Pranjal Shrivastava
2026-06-11 17:26 ` [PATCH v9 6/6] Documentation: Update VFIO NOIOMMU mode Jacob Pan
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=ajG0QK08xQ0SaeVv@google.com \
--to=praan@google.com \
--cc=alex@shazbot.org \
--cc=baolu.lu@linux.intel.com \
--cc=dmatlack@google.com \
--cc=iommu@lists.linux.dev \
--cc=jacob.pan@linux.microsoft.com \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolinc@nvidia.com \
--cc=pasha.tatashin@soleen.com \
--cc=robin.murphy@arm.com \
--cc=skhawaja@google.com \
--cc=smostafa@google.com \
--cc=ssengar@linux.microsoft.com \
--cc=will@kernel.org \
--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.