All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jacob Pan <jacob.pan@linux.microsoft.com>
To: linux-kernel@vger.kernel.org,
	"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Nicolin Chen <nicolinc@nvidia.com>,
	"Tian, Kevin" <kevin.tian@intel.com>,
	"Liu, Yi L" <yi.l.liu@intel.com>
Cc: skhawaja@google.com, pasha.tatashin@soleen.com,
	Jacob Pan <jacob.pan@linux.microsoft.com>,
	Zhang Yu <zhangyu1@linux.microsoft.com>,
	Jean Philippe-Brucker <jean-philippe@linaro.org>,
	David Matlack <dmatlack@google.com>
Subject: [RFC 3/8] iommufd: Add a mock page table format for noiommu mode
Date: Mon,  1 Dec 2025 09:30:07 -0800	[thread overview]
Message-ID: <20251201173012.18371-4-jacob.pan@linux.microsoft.com> (raw)
In-Reply-To: <20251201173012.18371-1-jacob.pan@linux.microsoft.com>

The dummy IOMMU driver for No-IOMMU mode needs a page table to store IOVA
to physical address mappings. Instead of inventing a new format, reuse the
generic IOMMU page table (iommupt) provided mock format where its
implementation modeled after AMD IOMMU v1 format, but generalized for
software-only use.

Signed-off-by: Jacob Pan <jacob.pan@linux.microsoft.com>
---
 drivers/iommu/generic_pt/fmt/Makefile        |  1 +
 drivers/iommu/generic_pt/fmt/iommu_noiommu.c | 10 ++++++++++
 include/linux/generic_pt/iommu.h             |  5 +++++
 3 files changed, 16 insertions(+)
 create mode 100644 drivers/iommu/generic_pt/fmt/iommu_noiommu.c

diff --git a/drivers/iommu/generic_pt/fmt/Makefile b/drivers/iommu/generic_pt/fmt/Makefile
index 5a3379107999..59ea791c6383 100644
--- a/drivers/iommu/generic_pt/fmt/Makefile
+++ b/drivers/iommu/generic_pt/fmt/Makefile
@@ -2,6 +2,7 @@
 
 iommu_pt_fmt-$(CONFIG_IOMMU_PT_AMDV1) += amdv1
 iommu_pt_fmt-$(CONFIG_IOMMUFD_TEST) += mock
+iommu_pt_fmt-$(CONFIG_NOIOMMU_MODE_IOMMU) += noiommu
 
 iommu_pt_fmt-$(CONFIG_IOMMU_PT_X86_64) += x86_64
 
diff --git a/drivers/iommu/generic_pt/fmt/iommu_noiommu.c b/drivers/iommu/generic_pt/fmt/iommu_noiommu.c
new file mode 100644
index 000000000000..4991dff60b59
--- /dev/null
+++ b/drivers/iommu/generic_pt/fmt/iommu_noiommu.c
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES
+ * Copyright (c) 2025, Microsoft Corporation.
+ */
+#define PT_FMT amdv1
+#define PT_FMT_VARIANT noiommu
+#define PT_SUPPORTED_FEATURES 0
+
+#include "iommu_template.h"
diff --git a/include/linux/generic_pt/iommu.h b/include/linux/generic_pt/iommu.h
index fde7ccf007c5..d7f70eaeb37f 100644
--- a/include/linux/generic_pt/iommu.h
+++ b/include/linux/generic_pt/iommu.h
@@ -255,6 +255,11 @@ IOMMU_FORMAT(amdv1, amdpt);
 struct pt_iommu_amdv1_mock_hw_info;
 IOMMU_PROTOTYPES(amdv1_mock);
 
+#define pt_iommu_amdv1_noiommu pt_iommu_amdv1
+#define pt_iommu_amdv1_noiommu_cfg pt_iommu_amdv1_cfg
+struct pt_iommu_amdv1_noiommu_hw_info;
+IOMMU_PROTOTYPES(amdv1_noiommu);
+
 struct pt_iommu_x86_64_cfg {
 	struct pt_iommu_cfg common;
 };
-- 
2.34.1


  parent reply	other threads:[~2025-12-01 17:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-01 17:30 [RFC 0/8] iommufd: Enable noiommu mode for cdev Jacob Pan
2025-12-01 17:30 ` [RFC 1/8] iommu: Make iommu_device_register_bus available beyond selftest Jacob Pan
2025-12-01 17:30 ` [RFC 2/8] iommu: Add a helper to check if any iommu device is registered Jacob Pan
2025-12-02  2:17   ` Baolu Lu
2025-12-03  0:06     ` Jacob Pan
2025-12-03  3:31       ` Baolu Lu
2025-12-03 22:28         ` Jacob Pan
2025-12-03 13:11       ` Jason Gunthorpe
2025-12-03 22:36         ` Jacob Pan
2025-12-04 10:53           ` Robin Murphy
2025-12-04 22:07             ` Jacob Pan
2025-12-12  4:02               ` Tian, Kevin
2025-12-12 19:51                 ` Jacob Pan
2025-12-01 17:30 ` Jacob Pan [this message]
2025-12-01 17:30 ` [RFC 4/8] iommu: Add a dummy driver for noiommu mode Jacob Pan
2025-12-01 17:30 ` [RFC 5/8] vfio: IOMMUFD relax requirement " Jacob Pan
2025-12-12  4:05   ` Tian, Kevin
2025-12-12 19:53     ` Jacob Pan
2025-12-01 17:30 ` [RFC 6/8] vfio: Rename and remove compat from noiommu set function Jacob Pan
2025-12-01 17:30 ` [RFC 7/8] iommu: Enable cdev noiommu mode under iommufd Jacob Pan
2025-12-01 17:30 ` [RFC 8/8] iommufd: Add an ioctl IOMMU_IOAS_GET_PA to query PA from IOVA Jacob Pan
2026-01-30 19:35 ` [RFC 0/8] iommufd: Enable noiommu mode for cdev Jason Gunthorpe
2026-02-06 22:50   ` 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=20251201173012.18371-4-jacob.pan@linux.microsoft.com \
    --to=jacob.pan@linux.microsoft.com \
    --cc=alex.williamson@redhat.com \
    --cc=dmatlack@google.com \
    --cc=iommu@lists.linux.dev \
    --cc=jean-philippe@linaro.org \
    --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=will@kernel.org \
    --cc=yi.l.liu@intel.com \
    --cc=zhangyu1@linux.microsoft.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.