All of lore.kernel.org
 help / color / mirror / Atom feed
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 1/6] iommufd: Support a HWPT without an iommu driver for noiommu
Date: Tue, 16 Jun 2026 20:18:06 +0000	[thread overview]
Message-ID: <ajGvfqjkZ3I1E-hA@google.com> (raw)
In-Reply-To: <20260611172658.3421138-2-jacob.pan@linux.microsoft.com>

On Thu, Jun 11, 2026 at 10:26:53AM -0700, Jacob Pan wrote:
> From: Jason Gunthorpe <jgg@nvidia.com>
> 
> Create just a little part of a real iommu driver, enough to
> slot in under the dev_iommu_ops() and allow iommufd to call
> domain_alloc_paging_flags() and fail everything else.
> 
> This allows explicitly creating a HWPT under an IOAS.
> 
> A new Kconfig option IOMMUFD_NOIOMMU is introduced to differentiate
> from the VFIO group/container based noiommu mode.
> 
> Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
> Reviewed-by: Samiullah Khawaja <skhawaja@google.com>
> Reviewed-by: Kevin Tian <kevin.tian@intel.com>
> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
> Signed-off-by: Jacob Pan <jacob.pan@linux.microsoft.com>
> ---
> V8:
>   - Guard vIOMMU and vDevice allocation paths for noiommu (Sashiko)
> v7:
>   - Drain no-IOMMU generic-PT freelist (Sashiko)
>   - Import generic-PT IOMMU namespace (Sashiko)
> v6: (Yi)
>   - Sort includes alphabetically (iommu.h after generic_pt/iommu.h)
>   - Fix comment: s/mock page table/SW-only page table/ to avoid confusion
>     with selftest mock
>   - Rewrite noiommu_amdv1_ops comment: explain why AMDV1 format is chosen
>     (multi-page size options), remove references to group-container mode distinction
> v5:
>    - Use the new IOMMUFD_NOIOMMU Kconfig instead of VFIO_NOIOMMU
>    - Use consistent wording referring to VFIO noiommu mode (Kevin)
>    - Copyright date fix (Kevin)
> v4:
>    - Make iommufd_noiommu_ops const
> v3:
>    - Add comment to explain the design difference over the
>      legacy noiommu VFIO code.
> ---
>  drivers/iommu/iommufd/Kconfig           |  12 +++
>  drivers/iommu/iommufd/Makefile          |   1 +
>  drivers/iommu/iommufd/hw_pagetable.c    |  19 ++++-
>  drivers/iommu/iommufd/hwpt_noiommu.c    | 105 ++++++++++++++++++++++++
>  drivers/iommu/iommufd/iommufd_private.h |  12 +++
>  drivers/iommu/iommufd/main.c            |   1 +
>  drivers/iommu/iommufd/viommu.c          |  14 +++-
>  7 files changed, 158 insertions(+), 6 deletions(-)
>  create mode 100644 drivers/iommu/iommufd/hwpt_noiommu.c
> 
> diff --git a/drivers/iommu/iommufd/Kconfig b/drivers/iommu/iommufd/Kconfig
> index 455bac0351f2..6c3bea83631b 100644
> --- a/drivers/iommu/iommufd/Kconfig
> +++ b/drivers/iommu/iommufd/Kconfig
> @@ -16,6 +16,18 @@ config IOMMUFD
>  	  If you don't know what to do here, say N.
>  
>  if IOMMUFD
> +config IOMMUFD_NOIOMMU
> +	bool
> +	depends on !GENERIC_ATOMIC64 # IOMMU_PT_AMDV1 requires cmpxchg64

Nit: Should we explicitly depend on 64BIT here?
I see further in the patch we assume 64-bit addresses:

+	cfg.common.hw_max_vasz_lg2 = 64;
+	cfg.common.hw_max_oasz_lg2 = 52;

> +	select GENERIC_PT
> +	select IOMMU_PT
> +	select IOMMU_PT_AMDV1
> +	help
> +	  Provides a SW-only IO page table for devices without hardware
> +	  IOMMU backing. This uses the AMDV1 page table format for
> +	  IOVA-to-PA lookups only, not for hardware DMA translation.
> +	  To be selected by VFIO_NOIOMMU when VFIO_DEVICE_CDEV is enabled.
> +

Apart from that,
Reviewed-by: Pranjal Shrivastava <praan@google.com>

Thanks,
Praan

  parent reply	other threads:[~2026-06-16 20:18 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 [this message]
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
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=ajGvfqjkZ3I1E-hA@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.