linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Liu Yi L <yi.l.liu@intel.com>
Cc: alex.williamson@redhat.com, jgg@nvidia.com, hch@lst.de,
	jasowang@redhat.com, joro@8bytes.org, jean-philippe@linaro.org,
	kevin.tian@intel.com, parav@mellanox.com, lkml@metux.net,
	pbonzini@redhat.com, lushenming@huawei.com,
	eric.auger@redhat.com, corbet@lwn.net, ashok.raj@intel.com,
	yi.l.liu@linux.intel.com, jun.j.tian@intel.com, hao.wu@intel.com,
	dave.jiang@intel.com, jacob.jun.pan@linux.intel.com,
	kwankhede@nvidia.com, robin.murphy@arm.com, kvm@vger.kernel.org,
	iommu@lists.linux-foundation.org, dwmw2@infradead.org,
	linux-kernel@vger.kernel.org, baolu.lu@linux.intel.com,
	nicolinc@nvidia.com
Subject: Re: [RFC 20/20] Doc: Add documentation for /dev/iommu
Date: Fri, 29 Oct 2021 11:15:31 +1100	[thread overview]
Message-ID: <YXs9IwqYHvUUXePO@yekko> (raw)
In-Reply-To: <20210919063848.1476776-21-yi.l.liu@intel.com>

[-- Attachment #1: Type: text/plain, Size: 9585 bytes --]

On Sun, Sep 19, 2021 at 02:38:48PM +0800, Liu Yi L wrote:
> Document the /dev/iommu framework for user.
> 
> Open:
> Do we want to document /dev/iommu in Documentation/userspace-api/iommu.rst?
> Existing iommu.rst is for the vSVA interfaces, honestly, may need to rewrite
> this doc entirely.
> 
> Signed-off-by: Kevin Tian <kevin.tian@intel.com>
> Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
> ---
>  Documentation/userspace-api/index.rst   |   1 +
>  Documentation/userspace-api/iommufd.rst | 183 ++++++++++++++++++++++++
>  2 files changed, 184 insertions(+)
>  create mode 100644 Documentation/userspace-api/iommufd.rst
> 
> diff --git a/Documentation/userspace-api/index.rst b/Documentation/userspace-api/index.rst
> index 0b5eefed027e..54df5a278023 100644
> --- a/Documentation/userspace-api/index.rst
> +++ b/Documentation/userspace-api/index.rst
> @@ -25,6 +25,7 @@ place where this information is gathered.
>     ebpf/index
>     ioctl/index
>     iommu
> +   iommufd
>     media/index
>     sysfs-platform_profile
>  
> diff --git a/Documentation/userspace-api/iommufd.rst b/Documentation/userspace-api/iommufd.rst
> new file mode 100644
> index 000000000000..abffbb47dc02
> --- /dev/null
> +++ b/Documentation/userspace-api/iommufd.rst
> @@ -0,0 +1,183 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +.. iommu:
> +
> +===================
> +IOMMU Userspace API
> +===================
> +
> +Direct device access from userspace has been a crtical feature in
> +high performance computing and virtualization usages. Linux now
> +includes multiple device-passthrough frameworks (e.g. VFIO and vDPA)
> +to manage secure device access from the userspace. One critical
> +task of those frameworks is to put the assigned device in a secure,
> +IOMMU-protected context so the device is prevented from doing harm
> +to the rest of the system.
> +
> +Currently those frameworks implement their own logic for managing
> +I/O page tables to isolate user-initiated DMAs. This doesn't scale
> +to support many new IOMMU features, such as PASID-granular DMA
> +remapping, nested translation, I/O page fault, IOMMU dirty bit, etc.
> +
> +The /dev/iommu framework provides an unified interface for managing
> +I/O page tables for passthrough devices. Existing passthrough
> +frameworks are expected to use this interface instead of continuing
> +their ad-hoc implementations.
> +
> +IOMMUFDs, IOASIDs, Devices and Groups
> +-------------------------------------
> +
> +The core concepts in /dev/iommu are IOMMUFDs and IOASIDs. IOMMUFD (by
> +opening /dev/iommu) is the container holding multiple I/O address
> +spaces for a user, while IOASID is the fd-local software handle
> +representing an I/O address space and associated with a single I/O
> +page table. User manages those address spaces through fd operations,
> +e.g. by using vfio type1v2 mapping semantics to manage respective
> +I/O page tables.
> +
> +IOASID is comparable to the conatiner concept in VFIO. The latter
> +is also associated to a single I/O address space. A main difference
> +between them is that multiple IOASIDs in the same IOMMUFD can be
> +nested together (not supported yet) to allow centralized accounting
> +of locked pages, while multiple containers are disconnected thus
> +duplicated accounting is incurred. Typically one IOMMUFD is
> +sufficient for all intended IOMMU usages for a user.
> +
> +An I/O address space takes effect in the IOMMU only after it is
> +attached by a device. One I/O address space can be attached by
> +multiple devices. One device can be only attached to a single I/O
> +address space at this point (on par with current vfio behavior).
> +
> +Device must be bound to an iommufd before the attach operation can
> +be conducted. The binding operation builds the connection between
> +the devicefd (opened via device-passthrough framework) and IOMMUFD.
> +IOMMU-protected security context is esbliashed when the binding
> +operation is completed.

This can't be quite right.  You can't establish a safe security
context until all devices in the groun are bound, but you can only
bind them one at a time.

>  The passthrough framework must block user
> +access to the assigned device until bind() returns success.
> +
> +The entire /dev/iommu framework adopts a device-centric model w/o
> +carrying any container/group legacy as current vfio does. However
> +the group is the minimum granularity that must be used to ensure
> +secure user access (refer to vfio.rst). This framework relies on
> +the IOMMU core layer to map device-centric model into group-granular
> +isolation.
> +
> +Managing I/O Address Spaces
> +---------------------------
> +
> +When creating an I/O address space (by allocating IOASID), the user
> +must specify the type of underlying I/O page table. Currently only
> +one type (kernel-managed) is supported. In the future other types
> +will be introduced, e.g. to support user-managed I/O page table or
> +a shared I/O page table which is managed by another kernel sub-
> +system (mm, ept, etc.). Kernel-managed I/O page table is currently
> +managed via vfio type1v2 equivalent mapping semantics.
> +
> +The user also needs to specify the format of the I/O page table
> +when allocating an IOASID.

This almost seems redundant with the previous paragraph.  I think
maybe it's making a distinction between "type" and "format", but I
don't think it's very clear what the distinction is.

> The format must be compatible to the
> +attached devices (or more specifically to the IOMMU which serves
> +the DMA from the attached devices). User can query the device IOMMU
> +format via IOMMUFD once a device is successfully bound. Attaching a
> +device to an IOASID with incompatible format is simply rejected.
> +
> +Currently no-snoop DMA is not supported yet. This implies that
> +IOASID must be created in an enforce-snoop format and only devices
> +which can be forced to snoop cache by IOMMU are allowed to be
> +attached to IOASID. The user should check uAPI extension and get
> +device info via IOMMUFD to handle such restriction.
> +
> +Usage Example
> +-------------
> +
> +Assume user wants to access PCI device 0000:06:0d.0, which is
> +exposed under the new /dev/vfio/devices directory by VFIO:
> +
> +	/* Open device-centric interface and /dev/iommu interface */
> +	device_fd = open("/dev/vfio/devices/0000:06:0d.0", O_RDWR);
> +	iommu_fd = open("/dev/iommu", O_RDWR);
> +
> +	/* Bind device to IOMMUFD */
> +	bind_data = { .iommu_fd = iommu_fd, .dev_cookie = cookie };
> +	ioctl(device_fd, VFIO_DEVICE_BIND_IOMMUFD, &bind_data);
> +
> +	/* Query per-device IOMMU capability/format */
> +	info = { .dev_cookie = cookie, };
> +	ioctl(iommu_fd, IOMMU_DEVICE_GET_INFO, &info);
> +
> +	if (!(info.flags & IOMMU_DEVICE_INFO_ENFORCE_SNOOP)) {
> +		if (!ioctl(iommu_fd, IOMMU_CHECK_EXTENSION,
> +				EXT_DMA_NO_SNOOP))
> +			/* No support of no-snoop DMA */
> +	}
> +
> +	if (!ioctl(iommu_fd, IOMMU_CHECK_EXTENSION, EXT_MAP_TYPE1V2))
> +		/* No support of vfio type1v2 mapping semantics */
> +
> +	/* Decides IOASID alloc fields based on info */
> +	alloc_data = { .type = IOMMU_IOASID_TYPE_KERNEL,
> +		       .flags = IOMMU_IOASID_ENFORCE_SNOOP,
> +		       .addr_width = info.addr_width, };
> +
> +	/* Allocate IOASID */
> +	gpa_ioasid = ioctl(iommu_fd, IOMMU_IOASID_ALLOC, &alloc_data);
> +
> +	/* Attach device to an IOASID */
> +	at_data = { .iommu_fd = iommu_fd; .ioasid = gpa_ioasid};
> +	ioctl(device_fd, VFIO_DEVICE_ATTACH_IOASID, &at_data);
> +
> +	/* Setup GPA mapping [0 - 1GB] */
> +	dma_map = {
> +		.ioasid	= gpa_ioasid,
> +		.data {
> +			.flags  = R/W		/* permission */
> +			.iova	= 0,		/* GPA */
> +			.vaddr	= 0x40000000,	/* HVA */
> +			.size	= 1GB,
> +		},
> +	};
> +	ioctl(iommu_fd, IOMMU_MAP_DMA, &dma_map);
> +
> +	/* DMA */
> +
> +	/* Unmap GPA mapping [0 - 1GB] */
> +	dma_unmap = {
> +		.ioasid	= gpa_ioasid,
> +		.data {
> +			.iova	= 0,		/* GPA */
> +			.size	= 1GB,
> +		},
> +	};
> +	ioctl(iommu_fd, IOMMU_UNMAP_DMA, &dma_unmap);
> +
> +	/* Detach device from an IOASID */
> +	dt_data = { .iommu_fd = iommu_fd; .ioasid = gpa_ioasid};
> +	ioctl(device_fd, VFIO_DEVICE_DETACH_IOASID, &dt_data);
> +
> +	/* Free IOASID */
> +	ioctl(iommu_fd, IOMMU_IOASID_FREE, gpa_ioasid);
> +
> +	close(device_fd);
> +	close(iommu_fd);
> +
> +API for device-passthrough frameworks
> +-------------------------------------
> +
> +iommufd binding and IOASID attach/detach are initiated via the device-
> +passthrough framework uAPI.
> +
> +When a binding operation is requested by the user, the passthrough
> +framework should call iommufd_bind_device(). When the device fd is
> +closed by the user, iommufd_unbind_device() should be called
> +automatically::
> +
> +	struct iommufd_device *
> +	iommufd_bind_device(int fd, struct device *dev,
> +			   u64 dev_cookie);
> +	void iommufd_unbind_device(struct iommufd_device *idev);
> +
> +IOASID attach/detach operations are per iommufd_device which is
> +returned by iommufd_bind_device():
> +
> +	int iommufd_device_attach_ioasid(struct iommufd_device *idev,
> +					int ioasid);
> +	void iommufd_device_detach_ioasid(struct iommufd_device *idev,
> +					int ioasid);

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2021-10-29  7:42 UTC|newest]

Thread overview: 274+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-19  6:38 [RFC 00/20] Introduce /dev/iommu for userspace I/O address space management Liu Yi L
2021-09-19  6:38 ` [RFC 01/20] iommu/iommufd: Add /dev/iommu core Liu Yi L
2021-09-21 15:41   ` Jason Gunthorpe
2021-09-22  1:51     ` Tian, Kevin
2021-09-22 12:40       ` Jason Gunthorpe
2021-09-22 13:59         ` Tian, Kevin
2021-09-22 14:10           ` Jason Gunthorpe
2021-10-15  9:18     ` Liu, Yi L
2021-10-15 11:18       ` Jason Gunthorpe
2021-10-15 11:29         ` Liu, Yi L
2021-10-19 16:57         ` Jacob Pan
2021-10-19 16:57           ` Jason Gunthorpe
2021-10-19 17:11             ` Jacob Pan
2021-10-19 17:12               ` Jason Gunthorpe
2021-09-19  6:38 ` [RFC 02/20] vfio: Add device class for /dev/vfio/devices Liu Yi L
2021-09-21 15:57   ` Jason Gunthorpe
2021-09-21 23:56     ` Tian, Kevin
2021-09-22  0:55       ` Jason Gunthorpe
2021-09-22  1:07         ` Tian, Kevin
2021-09-22 12:31           ` Jason Gunthorpe
2021-09-22  3:22         ` Tian, Kevin
2021-09-22 12:50           ` Jason Gunthorpe
2021-09-22 14:09             ` Tian, Kevin
2021-09-21 19:56   ` Alex Williamson
2021-09-22  0:56     ` Tian, Kevin
2021-09-29  2:08   ` David Gibson
2021-09-29 19:05     ` Alex Williamson
2021-09-30  2:43       ` David Gibson
2021-10-20 12:39     ` Liu, Yi L
2021-09-19  6:38 ` [RFC 03/20] vfio: Add vfio_[un]register_device() Liu Yi L
2021-09-21 16:01   ` Jason Gunthorpe
2021-09-21 23:10     ` Tian, Kevin
2021-09-22  0:53       ` Jason Gunthorpe
2021-09-22  0:59         ` Tian, Kevin
2021-09-22  9:23         ` Tian, Kevin
2021-09-22 12:22           ` Jason Gunthorpe
2021-09-22 13:44             ` Tian, Kevin
2021-09-22 20:10             ` Alex Williamson
2021-09-22 22:34               ` Tian, Kevin
2021-09-22 22:45                 ` Alex Williamson
2021-09-22 23:45                   ` Tian, Kevin
2021-09-22 23:52                     ` Jason Gunthorpe
2021-09-23  0:38                       ` Tian, Kevin
2021-09-22 23:56               ` Jason Gunthorpe
2021-09-22  0:54     ` Tian, Kevin
2021-09-22  1:00       ` Jason Gunthorpe
2021-09-22  1:02         ` Tian, Kevin
2021-09-23  7:25         ` Eric Auger
2021-09-23 11:44           ` Jason Gunthorpe
2021-09-29  2:46         ` david
2021-09-29 12:22           ` Jason Gunthorpe
2021-09-30  2:48             ` david
2021-09-29  2:43   ` David Gibson
2021-09-29  3:40     ` Tian, Kevin
2021-09-29  5:30     ` Tian, Kevin
2021-09-29  7:08       ` Cornelia Huck
2021-09-29 12:15         ` Jason Gunthorpe
2021-09-19  6:38 ` [RFC 04/20] iommu: Add iommu_device_get_info interface Liu Yi L
2021-09-21 16:19   ` Jason Gunthorpe
2021-09-22  2:31     ` Lu Baolu
2021-09-22  5:07       ` Christoph Hellwig
2021-09-29  2:52   ` David Gibson
2021-09-29  9:25     ` Lu Baolu
2021-09-29  9:29       ` Lu Baolu
2021-09-19  6:38 ` [RFC 05/20] vfio/pci: Register device to /dev/vfio/devices Liu Yi L
2021-09-21 16:40   ` Jason Gunthorpe
2021-09-21 21:09     ` Alex Williamson
2021-09-21 21:58       ` Jason Gunthorpe
2021-09-22  1:24         ` Tian, Kevin
2021-09-22  1:19       ` Tian, Kevin
2021-09-22 21:17         ` Alex Williamson
2021-09-22 23:49           ` Tian, Kevin
2021-09-19  6:38 ` [RFC 06/20] iommu: Add iommu_device_init[exit]_user_dma interfaces Liu Yi L
2021-09-21 17:09   ` Jason Gunthorpe
2021-09-22  1:47     ` Tian, Kevin
2021-09-22 12:39       ` Jason Gunthorpe
2021-09-22 13:56         ` Tian, Kevin
2021-09-27  9:42         ` Tian, Kevin
2021-09-27 11:34           ` Lu Baolu
2021-09-27 13:08             ` Tian, Kevin
2021-09-27 11:53           ` Jason Gunthorpe
2021-09-27 13:00             ` Tian, Kevin
2021-09-27 13:09               ` Jason Gunthorpe
2021-09-27 13:32                 ` Tian, Kevin
2021-09-27 14:39                   ` Jason Gunthorpe
2021-09-28  7:13                     ` Tian, Kevin
2021-09-28 11:54                       ` Jason Gunthorpe
2021-09-28 23:59                         ` Tian, Kevin
2021-09-27 19:19                   ` Alex Williamson
2021-09-28  7:43                     ` Tian, Kevin
2021-09-28 16:26                       ` Alex Williamson
2021-09-27 15:09           ` Jason Gunthorpe
2021-09-28  7:30             ` Tian, Kevin
2021-09-28 11:57               ` Jason Gunthorpe
2021-09-28 13:35                 ` Lu Baolu
2021-09-28 14:07                   ` Jason Gunthorpe
2021-09-29  0:38                     ` Tian, Kevin
2021-09-29 12:59                       ` Jason Gunthorpe
2021-10-15  1:29                         ` Tian, Kevin
2021-10-15 11:09                           ` Jason Gunthorpe
2021-10-18  1:52                             ` Tian, Kevin
2021-09-29  2:22                     ` Lu Baolu
2021-09-29  2:29                       ` Tian, Kevin
2021-09-29  2:38                         ` Lu Baolu
2021-09-29  4:55   ` David Gibson
2021-09-29  5:38     ` Tian, Kevin
2021-09-29  6:35       ` David Gibson
2021-09-29  7:31         ` Tian, Kevin
2021-09-30  3:05           ` David Gibson
2021-09-29 12:57         ` Jason Gunthorpe
2021-09-30  3:09           ` David Gibson
2021-09-30 22:28             ` Jason Gunthorpe
2021-10-01  3:54               ` David Gibson
2021-09-19  6:38 ` [RFC 07/20] iommu/iommufd: Add iommufd_[un]bind_device() Liu Yi L
2021-09-21 17:14   ` Jason Gunthorpe
2021-10-15  9:21     ` Liu, Yi L
2021-09-29  5:25   ` David Gibson
2021-09-29 12:24     ` Jason Gunthorpe
2021-09-30  3:10       ` David Gibson
2021-10-01 12:43         ` Jason Gunthorpe
2021-10-07  1:23           ` David Gibson
2021-10-07 11:35             ` Jason Gunthorpe
2021-10-11  3:24               ` David Gibson
2021-09-19  6:38 ` [RFC 08/20] vfio/pci: Add VFIO_DEVICE_BIND_IOMMUFD Liu Yi L
2021-09-21 17:29   ` Jason Gunthorpe
2021-09-22 21:01     ` Alex Williamson
2021-09-22 23:01       ` Jason Gunthorpe
2021-09-29  6:00   ` David Gibson
2021-09-29  6:41     ` Tian, Kevin
2021-09-29 12:28       ` Jason Gunthorpe
2021-09-29 22:34         ` Tian, Kevin
2021-09-30  3:12       ` David Gibson
2021-09-19  6:38 ` [RFC 09/20] iommu: Add page size and address width attributes Liu Yi L
2021-09-22 13:42   ` Eric Auger
2021-09-22 14:19     ` Tian, Kevin
2021-09-19  6:38 ` [RFC 10/20] iommu/iommufd: Add IOMMU_DEVICE_GET_INFO Liu Yi L
2021-09-21 17:40   ` Jason Gunthorpe
2021-09-22  3:30     ` Tian, Kevin
2021-09-22 12:41       ` Jason Gunthorpe
2021-09-29  6:18         ` david
2021-09-22 21:24   ` Alex Williamson
2021-09-22 23:49     ` Jason Gunthorpe
2021-09-23  3:10       ` Tian, Kevin
2021-09-23 10:15         ` Jean-Philippe Brucker
2021-09-23 11:27           ` Jason Gunthorpe
2021-09-23 12:05             ` Tian, Kevin
2021-09-23 12:22               ` Jason Gunthorpe
2021-09-29  8:48                 ` Tian, Kevin
2021-09-29 12:36                   ` Jason Gunthorpe
2021-09-30  8:30                     ` Tian, Kevin
2021-09-30 10:33                       ` Jean-Philippe Brucker
2021-09-30 22:04                         ` Jason Gunthorpe
2021-10-01  3:28                           ` hch
2021-10-14  8:13                             ` Tian, Kevin
2021-10-14  8:22                               ` hch
2021-10-14  8:29                                 ` Tian, Kevin
2021-10-14  8:01                         ` Tian, Kevin
2021-10-14  9:16                           ` Jean-Philippe Brucker
2021-09-30  8:49                 ` Tian, Kevin
2021-09-30 13:43                   ` Lu Baolu
2021-10-01  3:24                     ` hch
2021-09-30 22:08                   ` Jason Gunthorpe
2021-09-23 11:36         ` Jason Gunthorpe
     [not found]       ` <BN9PR11MB5433409DF766AAEF1BB2CF258CA39@BN9PR11MB5433.namprd11.prod.outlook.com>
2021-09-23  3:38         ` Tian, Kevin
2021-09-23 11:42           ` Jason Gunthorpe
2021-09-30  9:35             ` Tian, Kevin
2021-09-30 22:23               ` Jason Gunthorpe
2021-10-01  3:30                 ` hch
2021-10-14  9:11                 ` Tian, Kevin
2021-10-14 15:42                   ` Jason Gunthorpe
2021-10-15  1:01                     ` Tian, Kevin
     [not found]                     ` <BN9PR11MB543327BB6D58AEF91AD2C9D18CB99@BN9PR11MB5433.namprd11.prod.outlook.com>
2021-10-21  2:26                       ` Tian, Kevin
2021-10-21 14:58                         ` Jean-Philippe Brucker
2021-10-21 23:22                           ` Jason Gunthorpe
2021-10-22  7:49                             ` Jean-Philippe Brucker
2021-10-25 16:51                               ` Jason Gunthorpe
2021-10-21 23:30                         ` Jason Gunthorpe
2021-10-22  3:08                           ` Tian, Kevin
2021-10-25 23:34                             ` Jason Gunthorpe
2021-10-27  1:42                               ` Tian, Kevin
2021-10-28  2:07                               ` Tian, Kevin
2021-10-29 13:55                                 ` Jason Gunthorpe
2021-09-29  6:23   ` David Gibson
2021-09-19  6:38 ` [RFC 11/20] iommu/iommufd: Add IOMMU_IOASID_ALLOC/FREE Liu Yi L
2021-09-21 17:44   ` Jason Gunthorpe
2021-09-22  3:40     ` Tian, Kevin
2021-09-22 14:09       ` Jason Gunthorpe
2021-09-23  9:14         ` Tian, Kevin
2021-09-23 12:06           ` Jason Gunthorpe
2021-09-23 12:22             ` Tian, Kevin
2021-09-23 12:31               ` Jason Gunthorpe
2021-09-23 12:45                 ` Tian, Kevin
2021-09-23 13:01                   ` Jason Gunthorpe
2021-09-23 13:20                     ` Tian, Kevin
2021-09-23 13:30                       ` Jason Gunthorpe
2021-09-23 13:41                         ` Tian, Kevin
2021-10-01  6:30               ` david
2021-10-01  6:26           ` david
2021-10-01  6:19         ` david
2021-10-01 12:25           ` Jason Gunthorpe
2021-10-02  4:21             ` david
2021-10-02 12:25               ` Jason Gunthorpe
2021-10-11  5:37                 ` david
2021-10-11 17:17                   ` Jason Gunthorpe
2021-10-14  4:33                     ` david
2021-10-14 15:06                       ` Jason Gunthorpe
2021-10-18  3:40                         ` david
2021-10-01  6:15       ` david
2021-09-22 12:51     ` Liu, Yi L
2021-09-22 13:32       ` Jason Gunthorpe
2021-09-23  6:26         ` Liu, Yi L
2021-10-01  6:13     ` David Gibson
2021-10-01 12:22       ` Jason Gunthorpe
2021-10-11  6:02         ` David Gibson
2021-10-11  8:49           ` Jean-Philippe Brucker
2021-10-11 23:38             ` Jason Gunthorpe
2021-10-12  8:33               ` Jean-Philippe Brucker
2021-10-13  7:14                 ` Tian, Kevin
2021-10-13  7:07             ` Tian, Kevin
2021-10-14  4:38             ` David Gibson
2021-10-11 18:49           ` Jason Gunthorpe
2021-10-14  4:53             ` David Gibson
2021-10-14 14:52               ` Jason Gunthorpe
2021-10-18  3:50                 ` David Gibson
2021-10-18 17:42                   ` Jason Gunthorpe
2021-09-22 13:45   ` Jean-Philippe Brucker
2021-09-29 10:47     ` Liu, Yi L
2021-10-01  6:11   ` David Gibson
2021-10-13  7:00     ` Tian, Kevin
2021-10-14  5:00       ` David Gibson
2021-10-14  6:53         ` Tian, Kevin
2021-10-25  5:05           ` David Gibson
2021-10-27  2:32             ` Tian, Kevin
2021-09-19  6:38 ` [RFC 12/20] iommu/iommufd: Add IOMMU_CHECK_EXTENSION Liu Yi L
2021-09-21 17:47   ` Jason Gunthorpe
2021-09-22  3:41     ` Tian, Kevin
2021-09-22 12:55       ` Jason Gunthorpe
2021-09-22 14:13         ` Tian, Kevin
2021-09-19  6:38 ` [RFC 13/20] iommu: Extend iommu_at[de]tach_device() for multiple devices group Liu Yi L
2021-10-14  5:24   ` David Gibson
2021-10-14  7:06     ` Tian, Kevin
2021-10-18  3:57       ` David Gibson
2021-10-18 16:32         ` Jason Gunthorpe
2021-10-25  5:14           ` David Gibson
2021-10-25 12:14             ` Jason Gunthorpe
2021-10-25 13:16               ` David Gibson
2021-10-25 23:36                 ` Jason Gunthorpe
2021-10-26  9:23                   ` David Gibson
2021-09-19  6:38 ` [RFC 14/20] iommu/iommufd: Add iommufd_device_[de]attach_ioasid() Liu Yi L
2021-09-21 18:02   ` Jason Gunthorpe
2021-09-22  3:53     ` Tian, Kevin
2021-09-22 12:57       ` Jason Gunthorpe
2021-09-22 14:16         ` Tian, Kevin
2021-09-19  6:38 ` [RFC 15/20] vfio/pci: Add VFIO_DEVICE_[DE]ATTACH_IOASID Liu Yi L
2021-09-21 18:04   ` Jason Gunthorpe
2021-09-22  3:56     ` Tian, Kevin
2021-09-22 12:58       ` Jason Gunthorpe
2021-09-22 14:17         ` Tian, Kevin
2021-09-19  6:38 ` [RFC 16/20] vfio/type1: Export symbols for dma [un]map code sharing Liu Yi L
2021-09-21 18:14   ` Jason Gunthorpe
2021-09-22  3:57     ` Tian, Kevin
2021-09-19  6:38 ` [RFC 17/20] iommu/iommufd: Report iova range to userspace Liu Yi L
2021-09-22 14:49   ` Jean-Philippe Brucker
2021-09-29 10:44     ` Liu, Yi L
2021-09-29 12:07       ` Jean-Philippe Brucker
2021-09-29 12:31         ` Jason Gunthorpe
2021-09-19  6:38 ` [RFC 18/20] iommu/iommufd: Add IOMMU_[UN]MAP_DMA on IOASID Liu Yi L
2021-09-19  6:38 ` [RFC 19/20] iommu/vt-d: Implement device_info iommu_ops callback Liu Yi L
2021-09-19  6:38 ` [RFC 20/20] Doc: Add documentation for /dev/iommu Liu Yi L
2021-10-29  0:15   ` David Gibson [this message]
2021-10-29 12:44     ` Jason Gunthorpe
2021-09-19  6:45 ` [RFC 00/20] Introduce /dev/iommu for userspace I/O address space management Liu, Yi L
2021-09-21 13:45 ` Jason Gunthorpe
2021-09-22  3:25   ` Liu, Yi L

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=YXs9IwqYHvUUXePO@yekko \
    --to=david@gibson.dropbear.id.au \
    --cc=alex.williamson@redhat.com \
    --cc=ashok.raj@intel.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=corbet@lwn.net \
    --cc=dave.jiang@intel.com \
    --cc=dwmw2@infradead.org \
    --cc=eric.auger@redhat.com \
    --cc=hao.wu@intel.com \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jacob.jun.pan@linux.intel.com \
    --cc=jasowang@redhat.com \
    --cc=jean-philippe@linaro.org \
    --cc=jgg@nvidia.com \
    --cc=joro@8bytes.org \
    --cc=jun.j.tian@intel.com \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkml@metux.net \
    --cc=lushenming@huawei.com \
    --cc=nicolinc@nvidia.com \
    --cc=parav@mellanox.com \
    --cc=pbonzini@redhat.com \
    --cc=robin.murphy@arm.com \
    --cc=yi.l.liu@intel.com \
    --cc=yi.l.liu@linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).