All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: "Liu, Yi L" <yi.l.liu@intel.com>,
	"alex.williamson@redhat.com" <alex.williamson@redhat.com>,
	"hch@lst.de" <hch@lst.de>,
	"jasowang@redhat.com" <jasowang@redhat.com>,
	"joro@8bytes.org" <joro@8bytes.org>,
	"jean-philippe@linaro.org" <jean-philippe@linaro.org>,
	"parav@mellanox.com" <parav@mellanox.com>,
	"lkml@metux.net" <lkml@metux.net>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"lushenming@huawei.com" <lushenming@huawei.com>,
	"eric.auger@redhat.com" <eric.auger@redhat.com>,
	"corbet@lwn.net" <corbet@lwn.net>,
	"Raj, Ashok" <ashok.raj@intel.com>,
	"yi.l.liu@linux.intel.com" <yi.l.liu@linux.intel.com>,
	"Tian, Jun J" <jun.j.tian@intel.com>,
	"Wu, Hao" <hao.wu@intel.com>,
	"Jiang, Dave" <dave.jiang@intel.com>,
	"jacob.jun.pan@linux.intel.com" <jacob.jun.pan@linux.intel.com>,
	"kwankhede@nvidia.com" <kwankhede@nvidia.com>,
	"robin.murphy@arm.com" <robin.murphy@arm.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	"dwmw2@infradead.org" <dwmw2@infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"baolu.lu@linux.intel.com" <baolu.lu@linux.intel.com>,
	"david@gibson.dropbear.id.au" <david@gibson.dropbear.id.au>,
	"nicolinc@nvidia.com" <nicolinc@nvidia.com>
Subject: RE: [RFC 06/20] iommu: Add iommu_device_init[exit]_user_dma interfaces
Date: Mon, 27 Sep 2021 09:42:58 +0000	[thread overview]
Message-ID: <BN9PR11MB5433CE19425E85E7F52093278CA79@BN9PR11MB5433.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20210922123931.GI327412@nvidia.com>

> From: Jason Gunthorpe <jgg@nvidia.com>
> Sent: Wednesday, September 22, 2021 8:40 PM
> 
> > > Ie the basic flow would see the driver core doing some:
> >
> > Just double confirm. Is there concern on having the driver core to
> > call iommu functions?
> 
> It is always an interesting question, but I'd say iommu is
> foundantional to Linux and if it needs driver core help it shouldn't
> be any different from PM, pinctl, or other subsystems that have
> inserted themselves into the driver core.
> 
> Something kind of like the below.
> 
> If I recall, once it is done like this then the entire iommu notifier
> infrastructure can be ripped out which is a lot of code.

Currently vfio is the only user of this notifier mechanism. Now 
three events are handled in vfio_iommu_group_notifier():

NOTIFY_ADD_DEVICE: this is basically for some sanity check. suppose
not required once we handle it cleanly in the iommu/driver core.

NOTIFY_BOUND_DRIVER: the BUG_ON() logic to be fixed by this change.

NOTIFY_UNBOUND_DRIVER: still needs some thoughts. Based on
the comments the group->unbound_list is used to avoid breaking
group viability check between vfio_unregister_group_dev() and 
final dev/drv teardown. within that small window the device is
not tracked by vfio group but is still bound to a driver (e.g. vfio-pci
itself), while an external group user may hold a reference to the
group. Possibly it's not required now with the new mechanism as 
we rely on init/exit_user_dma() as the single switch to claim/
withdraw the group ownership. As long as exit_user_dma() is not 
called until vfio_group_release(), above small window is covered
thus no need to maintain a unbound_list.

But anyway since this corner case is tricky, will think more in case
of any oversight.

> 
> 
> diff --git a/drivers/base/dd.c b/drivers/base/dd.c
> index 68ea1f949daa90..e39612c99c6123 100644
> --- a/drivers/base/dd.c
> +++ b/drivers/base/dd.c
> @@ -566,6 +566,10 @@ static int really_probe(struct device *dev, struct
> device_driver *drv)
>                 goto done;
>         }
> 
> +       ret = iommu_set_kernel_ownership(dev);
> +       if (ret)
> +               return ret;
> +
>  re_probe:
>         dev->driver = drv;
> 
> @@ -673,6 +677,7 @@ static int really_probe(struct device *dev, struct
> device_driver *drv)
>                 dev->pm_domain->dismiss(dev);
>         pm_runtime_reinit(dev);
>         dev_pm_set_driver_flags(dev, 0);
> +       iommu_release_kernel_ownership(dev);
>  done:
>         return ret;
>  }
> @@ -1214,6 +1219,7 @@ static void __device_release_driver(struct device
> *dev, struct device *parent)
>                         dev->pm_domain->dismiss(dev);
>                 pm_runtime_reinit(dev);
>                 dev_pm_set_driver_flags(dev, 0);
> +               iommu_release_kernel_ownership(dev);
> 
>                 klist_remove(&dev->p->knode_driver);
>                 device_pm_check_callbacks(dev);

I expanded above into below conceptual draft. Please help check whether
it matches your thought:

diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 68ea1f9..826a651 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -566,6 +566,10 @@ static int really_probe(struct device *dev, struct device_driver *drv)
 		goto done;
 	}
 
+	ret = iommu_device_set_dma_hint(dev, drv->dma_hint);
+	if (ret)
+		return ret;
+
 re_probe:
 	dev->driver = drv;
 
@@ -673,6 +677,7 @@ static int really_probe(struct device *dev, struct device_driver *drv)
 		dev->pm_domain->dismiss(dev);
 	pm_runtime_reinit(dev);
 	dev_pm_set_driver_flags(dev, 0);
+	iommu_device_clear_dma_hint(dev);
 done:
 	return ret;
 }
@@ -1214,6 +1219,7 @@ static void __device_release_driver(struct device *dev, struct device *parent)
 			dev->pm_domain->dismiss(dev);
 		pm_runtime_reinit(dev);
 		dev_pm_set_driver_flags(dev, 0);
+		iommu_device_clear_dma_hint(dev);
 
 		klist_remove(&dev->p->knode_driver);
 		device_pm_check_callbacks(dev);
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 3303d70..b12f335 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -1064,6 +1064,104 @@ void iommu_group_put(struct iommu_group *group)
 }
 EXPORT_SYMBOL_GPL(iommu_group_put);
 
+static int iommu_dev_viable(struct device *dev, void *data)
+{
+	enum dma_hint hint = *data;
+	struct device_driver *drv = READ_ONCE(dev->driver);
+
+	/* no conflict if the new device doesn't do DMA */
+	if (hint == DMA_FOR_NONE)
+		return 0;
+
+	/* no conflict if this device is driver-less, or doesn't do DMA */
+	if (!drv || (drv->dma_hint == DMA_FOR_NONE))
+		return 0;
+
+	/* kernel dma and user dma are exclusive */
+	if (hint != drv->dma_hint)
+		return -EINVAL;
+
+	/*
+	 * devices in the group could be bound to different user-dma
+	 * drivers (e.g. vfio-pci, vdpa, etc.), or even bound to the
+	 * same driver but eventually opened via different mechanisms
+	 * (e.g. vfio group vs. nongroup interfaces). We rely on 
+	 * iommu_{group/device}_init_user_dma() to ensure exclusive
+	 * user-dma ownership (iommufd ctx, vfio container ctx, etc.)
+	 * in such scenario.
+	 */
+	return 0;
+}
+
+static int __iommu_group_viable(struct iommu_group *group, enum dma_hint hint)
+{
+	return (__iommu_group_for_each_dev(group, &hint,
+					   iommu_dev_viable) == 0);
+}
+
+int iommu_device_set_dma_hint(struct device *dev, enum dma_hint hint)
+{
+	struct iommu_group *group;
+	int ret;
+
+	group = iommu_group_get(dev);
+	/* not an iommu-probed device */
+	if (!group)
+		return 0;
+
+	mutex_lock(&group->mutex);
+	ret = __iommu_group_viable(group, hint);
+	mutex_unlock(&group->mutex);
+
+	iommu_group_put(group);
+	return ret;
+}
+
+/* any housekeeping? */
+void iommu_device_clear_dma_hint(struct device *dev) {}
+
+/* claim group ownership for user-dma */
+int __iommu_group_init_user_dma(struct iommu_group *group,
+				unsigned long owner)
+{
+	int ret;
+
+	ret = __iommu_group_viable(group, DMA_FOR_USER);
+	if (ret)
+		goto out;
+
+	/* other logic for exclusive user_dma ownership and refcounting */
+out:
+	return ret;
+}
+
+int iommu_group_init_user_dma(struct iommu_group *group,
+			      unsigned long owner)
+{
+	int ret;
+
+	mutex_lock(&group->mutex);
+	ret = __iommu_group_init_user_dma(group, owner);
+	mutex_unlock(&group->mutex);
+	return ret;
+}
+
+int iommu_device_init_user_dma(struct device *dev,
+			      unsigned long owner)
+{
+	struct iommu_group *group = iommu_group_get(dev);
+	int ret;
+
+	if (!group)
+		return -ENODEV;
+
+	mutex_lock(&group->mutex);
+	ret = __iommu_group_init_user_dma(group, owner);
+	mutex_unlock(&group->mutex);
+	iommu_grou_put(group);
+	return ret;
+}
+
 /**
  * iommu_group_register_notifier - Register a notifier for group changes
  * @group: the group to watch
diff --git a/drivers/pci/pci-stub.c b/drivers/pci/pci-stub.c
index e408099..4568811 100644
--- a/drivers/pci/pci-stub.c
+++ b/drivers/pci/pci-stub.c
@@ -36,6 +36,9 @@ static int pci_stub_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	.name		= "pci-stub",
 	.id_table	= NULL,	/* only dynamic id's */
 	.probe		= pci_stub_probe,
+	.driver = {
+		.dma_hint	= DMA_FOR_NONE,
+	},
 };
 
 static int __init pci_stub_init(void)
diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index dcd648e..a613b78 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -678,6 +678,9 @@ static void ifcvf_remove(struct pci_dev *pdev)
 	.id_table = ifcvf_pci_ids,
 	.probe    = ifcvf_probe,
 	.remove   = ifcvf_remove,
+	.driver = {
+		.dma_hint	= DMA_FOR_USER,
+	},
 };
 
 module_pci_driver(ifcvf_driver);
diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c
index a5ce92b..61c422d 100644
--- a/drivers/vfio/pci/vfio_pci.c
+++ b/drivers/vfio/pci/vfio_pci.c
@@ -193,6 +193,9 @@ static int vfio_pci_sriov_configure(struct pci_dev *pdev, int nr_virtfn)
 	.remove			= vfio_pci_remove,
 	.sriov_configure	= vfio_pci_sriov_configure,
 	.err_handler		= &vfio_pci_core_err_handlers,
+	.driver = {
+		.dma_hint	= DMA_FOR_USER,
+	},
 };
 
 static void __init vfio_pci_fill_ids(void)
diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h
index a498ebc..6bddfd2 100644
--- a/include/linux/device/driver.h
+++ b/include/linux/device/driver.h
@@ -48,6 +48,17 @@ enum probe_type {
 };
 
 /**
+ * enum dma_hint - device driver dma hint
+ *	Device drivers may provide hints for whether dma is
+ *	intended for kernel driver, user driver, not not required.
+ */
+enum dma_hint {
+	DMA_FOR_KERNEL,
+	DMA_FOR_USER,
+	DMA_FOR_NONE,
+};
+
+/**
  * struct device_driver - The basic device driver structure
  * @name:	Name of the device driver.
  * @bus:	The bus which the device of this driver belongs to.
@@ -101,6 +112,7 @@ struct device_driver {
 
 	bool suppress_bind_attrs;	/* disables bind/unbind via sysfs */
 	enum probe_type probe_type;
+	enum dma_type dma_type;
 
 	const struct of_device_id	*of_match_table;
 	const struct acpi_device_id	*acpi_match_table;

Thanks
Kevin



WARNING: multiple messages have this Message-ID (diff)
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"jasowang@redhat.com" <jasowang@redhat.com>,
	"kwankhede@nvidia.com" <kwankhede@nvidia.com>,
	"hch@lst.de" <hch@lst.de>,
	"jean-philippe@linaro.org" <jean-philippe@linaro.org>,
	"Jiang, Dave" <dave.jiang@intel.com>,
	"Raj, Ashok" <ashok.raj@intel.com>,
	"corbet@lwn.net" <corbet@lwn.net>,
	"parav@mellanox.com" <parav@mellanox.com>,
	"alex.williamson@redhat.com" <alex.williamson@redhat.com>,
	"lkml@metux.net" <lkml@metux.net>,
	"david@gibson.dropbear.id.au" <david@gibson.dropbear.id.au>,
	"dwmw2@infradead.org" <dwmw2@infradead.org>,
	"Tian, Jun J" <jun.j.tian@intel.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"lushenming@huawei.com" <lushenming@huawei.com>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"robin.murphy@arm.com" <robin.murphy@arm.com>
Subject: RE: [RFC 06/20] iommu: Add iommu_device_init[exit]_user_dma interfaces
Date: Mon, 27 Sep 2021 09:42:58 +0000	[thread overview]
Message-ID: <BN9PR11MB5433CE19425E85E7F52093278CA79@BN9PR11MB5433.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20210922123931.GI327412@nvidia.com>

> From: Jason Gunthorpe <jgg@nvidia.com>
> Sent: Wednesday, September 22, 2021 8:40 PM
> 
> > > Ie the basic flow would see the driver core doing some:
> >
> > Just double confirm. Is there concern on having the driver core to
> > call iommu functions?
> 
> It is always an interesting question, but I'd say iommu is
> foundantional to Linux and if it needs driver core help it shouldn't
> be any different from PM, pinctl, or other subsystems that have
> inserted themselves into the driver core.
> 
> Something kind of like the below.
> 
> If I recall, once it is done like this then the entire iommu notifier
> infrastructure can be ripped out which is a lot of code.

Currently vfio is the only user of this notifier mechanism. Now 
three events are handled in vfio_iommu_group_notifier():

NOTIFY_ADD_DEVICE: this is basically for some sanity check. suppose
not required once we handle it cleanly in the iommu/driver core.

NOTIFY_BOUND_DRIVER: the BUG_ON() logic to be fixed by this change.

NOTIFY_UNBOUND_DRIVER: still needs some thoughts. Based on
the comments the group->unbound_list is used to avoid breaking
group viability check between vfio_unregister_group_dev() and 
final dev/drv teardown. within that small window the device is
not tracked by vfio group but is still bound to a driver (e.g. vfio-pci
itself), while an external group user may hold a reference to the
group. Possibly it's not required now with the new mechanism as 
we rely on init/exit_user_dma() as the single switch to claim/
withdraw the group ownership. As long as exit_user_dma() is not 
called until vfio_group_release(), above small window is covered
thus no need to maintain a unbound_list.

But anyway since this corner case is tricky, will think more in case
of any oversight.

> 
> 
> diff --git a/drivers/base/dd.c b/drivers/base/dd.c
> index 68ea1f949daa90..e39612c99c6123 100644
> --- a/drivers/base/dd.c
> +++ b/drivers/base/dd.c
> @@ -566,6 +566,10 @@ static int really_probe(struct device *dev, struct
> device_driver *drv)
>                 goto done;
>         }
> 
> +       ret = iommu_set_kernel_ownership(dev);
> +       if (ret)
> +               return ret;
> +
>  re_probe:
>         dev->driver = drv;
> 
> @@ -673,6 +677,7 @@ static int really_probe(struct device *dev, struct
> device_driver *drv)
>                 dev->pm_domain->dismiss(dev);
>         pm_runtime_reinit(dev);
>         dev_pm_set_driver_flags(dev, 0);
> +       iommu_release_kernel_ownership(dev);
>  done:
>         return ret;
>  }
> @@ -1214,6 +1219,7 @@ static void __device_release_driver(struct device
> *dev, struct device *parent)
>                         dev->pm_domain->dismiss(dev);
>                 pm_runtime_reinit(dev);
>                 dev_pm_set_driver_flags(dev, 0);
> +               iommu_release_kernel_ownership(dev);
> 
>                 klist_remove(&dev->p->knode_driver);
>                 device_pm_check_callbacks(dev);

I expanded above into below conceptual draft. Please help check whether
it matches your thought:

diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 68ea1f9..826a651 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -566,6 +566,10 @@ static int really_probe(struct device *dev, struct device_driver *drv)
 		goto done;
 	}
 
+	ret = iommu_device_set_dma_hint(dev, drv->dma_hint);
+	if (ret)
+		return ret;
+
 re_probe:
 	dev->driver = drv;
 
@@ -673,6 +677,7 @@ static int really_probe(struct device *dev, struct device_driver *drv)
 		dev->pm_domain->dismiss(dev);
 	pm_runtime_reinit(dev);
 	dev_pm_set_driver_flags(dev, 0);
+	iommu_device_clear_dma_hint(dev);
 done:
 	return ret;
 }
@@ -1214,6 +1219,7 @@ static void __device_release_driver(struct device *dev, struct device *parent)
 			dev->pm_domain->dismiss(dev);
 		pm_runtime_reinit(dev);
 		dev_pm_set_driver_flags(dev, 0);
+		iommu_device_clear_dma_hint(dev);
 
 		klist_remove(&dev->p->knode_driver);
 		device_pm_check_callbacks(dev);
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 3303d70..b12f335 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -1064,6 +1064,104 @@ void iommu_group_put(struct iommu_group *group)
 }
 EXPORT_SYMBOL_GPL(iommu_group_put);
 
+static int iommu_dev_viable(struct device *dev, void *data)
+{
+	enum dma_hint hint = *data;
+	struct device_driver *drv = READ_ONCE(dev->driver);
+
+	/* no conflict if the new device doesn't do DMA */
+	if (hint == DMA_FOR_NONE)
+		return 0;
+
+	/* no conflict if this device is driver-less, or doesn't do DMA */
+	if (!drv || (drv->dma_hint == DMA_FOR_NONE))
+		return 0;
+
+	/* kernel dma and user dma are exclusive */
+	if (hint != drv->dma_hint)
+		return -EINVAL;
+
+	/*
+	 * devices in the group could be bound to different user-dma
+	 * drivers (e.g. vfio-pci, vdpa, etc.), or even bound to the
+	 * same driver but eventually opened via different mechanisms
+	 * (e.g. vfio group vs. nongroup interfaces). We rely on 
+	 * iommu_{group/device}_init_user_dma() to ensure exclusive
+	 * user-dma ownership (iommufd ctx, vfio container ctx, etc.)
+	 * in such scenario.
+	 */
+	return 0;
+}
+
+static int __iommu_group_viable(struct iommu_group *group, enum dma_hint hint)
+{
+	return (__iommu_group_for_each_dev(group, &hint,
+					   iommu_dev_viable) == 0);
+}
+
+int iommu_device_set_dma_hint(struct device *dev, enum dma_hint hint)
+{
+	struct iommu_group *group;
+	int ret;
+
+	group = iommu_group_get(dev);
+	/* not an iommu-probed device */
+	if (!group)
+		return 0;
+
+	mutex_lock(&group->mutex);
+	ret = __iommu_group_viable(group, hint);
+	mutex_unlock(&group->mutex);
+
+	iommu_group_put(group);
+	return ret;
+}
+
+/* any housekeeping? */
+void iommu_device_clear_dma_hint(struct device *dev) {}
+
+/* claim group ownership for user-dma */
+int __iommu_group_init_user_dma(struct iommu_group *group,
+				unsigned long owner)
+{
+	int ret;
+
+	ret = __iommu_group_viable(group, DMA_FOR_USER);
+	if (ret)
+		goto out;
+
+	/* other logic for exclusive user_dma ownership and refcounting */
+out:
+	return ret;
+}
+
+int iommu_group_init_user_dma(struct iommu_group *group,
+			      unsigned long owner)
+{
+	int ret;
+
+	mutex_lock(&group->mutex);
+	ret = __iommu_group_init_user_dma(group, owner);
+	mutex_unlock(&group->mutex);
+	return ret;
+}
+
+int iommu_device_init_user_dma(struct device *dev,
+			      unsigned long owner)
+{
+	struct iommu_group *group = iommu_group_get(dev);
+	int ret;
+
+	if (!group)
+		return -ENODEV;
+
+	mutex_lock(&group->mutex);
+	ret = __iommu_group_init_user_dma(group, owner);
+	mutex_unlock(&group->mutex);
+	iommu_grou_put(group);
+	return ret;
+}
+
 /**
  * iommu_group_register_notifier - Register a notifier for group changes
  * @group: the group to watch
diff --git a/drivers/pci/pci-stub.c b/drivers/pci/pci-stub.c
index e408099..4568811 100644
--- a/drivers/pci/pci-stub.c
+++ b/drivers/pci/pci-stub.c
@@ -36,6 +36,9 @@ static int pci_stub_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	.name		= "pci-stub",
 	.id_table	= NULL,	/* only dynamic id's */
 	.probe		= pci_stub_probe,
+	.driver = {
+		.dma_hint	= DMA_FOR_NONE,
+	},
 };
 
 static int __init pci_stub_init(void)
diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index dcd648e..a613b78 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -678,6 +678,9 @@ static void ifcvf_remove(struct pci_dev *pdev)
 	.id_table = ifcvf_pci_ids,
 	.probe    = ifcvf_probe,
 	.remove   = ifcvf_remove,
+	.driver = {
+		.dma_hint	= DMA_FOR_USER,
+	},
 };
 
 module_pci_driver(ifcvf_driver);
diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c
index a5ce92b..61c422d 100644
--- a/drivers/vfio/pci/vfio_pci.c
+++ b/drivers/vfio/pci/vfio_pci.c
@@ -193,6 +193,9 @@ static int vfio_pci_sriov_configure(struct pci_dev *pdev, int nr_virtfn)
 	.remove			= vfio_pci_remove,
 	.sriov_configure	= vfio_pci_sriov_configure,
 	.err_handler		= &vfio_pci_core_err_handlers,
+	.driver = {
+		.dma_hint	= DMA_FOR_USER,
+	},
 };
 
 static void __init vfio_pci_fill_ids(void)
diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h
index a498ebc..6bddfd2 100644
--- a/include/linux/device/driver.h
+++ b/include/linux/device/driver.h
@@ -48,6 +48,17 @@ enum probe_type {
 };
 
 /**
+ * enum dma_hint - device driver dma hint
+ *	Device drivers may provide hints for whether dma is
+ *	intended for kernel driver, user driver, not not required.
+ */
+enum dma_hint {
+	DMA_FOR_KERNEL,
+	DMA_FOR_USER,
+	DMA_FOR_NONE,
+};
+
+/**
  * struct device_driver - The basic device driver structure
  * @name:	Name of the device driver.
  * @bus:	The bus which the device of this driver belongs to.
@@ -101,6 +112,7 @@ struct device_driver {
 
 	bool suppress_bind_attrs;	/* disables bind/unbind via sysfs */
 	enum probe_type probe_type;
+	enum dma_type dma_type;
 
 	const struct of_device_id	*of_match_table;
 	const struct acpi_device_id	*acpi_match_table;

Thanks
Kevin


_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

  parent reply	other threads:[~2021-09-27  9:43 UTC|newest]

Thread overview: 537+ 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 ` Liu Yi L
2021-09-19  6:38 ` [RFC 01/20] iommu/iommufd: Add /dev/iommu core Liu Yi L
2021-09-19  6:38   ` Liu Yi L
2021-09-21 15:41   ` Jason Gunthorpe
2021-09-21 15:41     ` Jason Gunthorpe via iommu
2021-09-22  1:51     ` Tian, Kevin
2021-09-22  1:51       ` Tian, Kevin
2021-09-22 12:40       ` Jason Gunthorpe
2021-09-22 12:40         ` Jason Gunthorpe via iommu
2021-09-22 13:59         ` Tian, Kevin
2021-09-22 13:59           ` Tian, Kevin
2021-09-22 14:10           ` Jason Gunthorpe
2021-09-22 14:10             ` Jason Gunthorpe via iommu
2021-10-15  9:18     ` Liu, Yi L
2021-10-15  9:18       ` Liu, Yi L
2021-10-15 11:18       ` Jason Gunthorpe
2021-10-15 11:18         ` Jason Gunthorpe via iommu
2021-10-15 11:29         ` Liu, Yi L
2021-10-15 11:29           ` Liu, Yi L
2021-10-19 16:57         ` Jacob Pan
2021-10-19 16:57           ` Jacob Pan
2021-10-19 16:57           ` Jason Gunthorpe
2021-10-19 16:57             ` Jason Gunthorpe via iommu
2021-10-19 17:11             ` Jacob Pan
2021-10-19 17:11               ` Jacob Pan
2021-10-19 17:12               ` Jason Gunthorpe
2021-10-19 17:12                 ` Jason Gunthorpe via iommu
2021-09-19  6:38 ` [RFC 02/20] vfio: Add device class for /dev/vfio/devices Liu Yi L
2021-09-19  6:38   ` Liu Yi L
2021-09-21 15:57   ` Jason Gunthorpe
2021-09-21 15:57     ` Jason Gunthorpe via iommu
2021-09-21 23:56     ` Tian, Kevin
2021-09-21 23:56       ` Tian, Kevin
2021-09-22  0:55       ` Jason Gunthorpe
2021-09-22  0:55         ` Jason Gunthorpe via iommu
2021-09-22  1:07         ` Tian, Kevin
2021-09-22  1:07           ` Tian, Kevin
2021-09-22 12:31           ` Jason Gunthorpe
2021-09-22 12:31             ` Jason Gunthorpe via iommu
2021-09-22  3:22         ` Tian, Kevin
2021-09-22  3:22           ` Tian, Kevin
2021-09-22 12:50           ` Jason Gunthorpe
2021-09-22 12:50             ` Jason Gunthorpe via iommu
2021-09-22 14:09             ` Tian, Kevin
2021-09-22 14:09               ` Tian, Kevin
2021-09-21 19:56   ` Alex Williamson
2021-09-21 19:56     ` Alex Williamson
2021-09-22  0:56     ` Tian, Kevin
2021-09-22  0:56       ` Tian, Kevin
2021-09-29  2:08   ` David Gibson
2021-09-29  2:08     ` David Gibson
2021-09-29 19:05     ` Alex Williamson
2021-09-29 19:05       ` Alex Williamson
2021-09-30  2:43       ` David Gibson
2021-09-30  2:43         ` David Gibson
2021-10-20 12:39     ` Liu, Yi L
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-19  6:38   ` Liu Yi L
2021-09-21 16:01   ` Jason Gunthorpe
2021-09-21 16:01     ` Jason Gunthorpe via iommu
2021-09-21 23:10     ` Tian, Kevin
2021-09-21 23:10       ` Tian, Kevin
2021-09-22  0:53       ` Jason Gunthorpe
2021-09-22  0:53         ` Jason Gunthorpe via iommu
2021-09-22  0:59         ` Tian, Kevin
2021-09-22  0:59           ` Tian, Kevin
2021-09-22  9:23         ` Tian, Kevin
2021-09-22  9:23           ` Tian, Kevin
2021-09-22 12:22           ` Jason Gunthorpe
2021-09-22 12:22             ` Jason Gunthorpe via iommu
2021-09-22 13:44             ` Tian, Kevin
2021-09-22 13:44               ` Tian, Kevin
2021-09-22 20:10             ` Alex Williamson
2021-09-22 20:10               ` Alex Williamson
2021-09-22 22:34               ` Tian, Kevin
2021-09-22 22:34                 ` Tian, Kevin
2021-09-22 22:45                 ` Alex Williamson
2021-09-22 22:45                   ` Alex Williamson
2021-09-22 23:45                   ` Tian, Kevin
2021-09-22 23:45                     ` Tian, Kevin
2021-09-22 23:52                     ` Jason Gunthorpe
2021-09-22 23:52                       ` Jason Gunthorpe via iommu
2021-09-23  0:38                       ` Tian, Kevin
2021-09-23  0:38                         ` Tian, Kevin
2021-09-22 23:56               ` Jason Gunthorpe
2021-09-22 23:56                 ` Jason Gunthorpe via iommu
2021-09-22  0:54     ` Tian, Kevin
2021-09-22  0:54       ` Tian, Kevin
2021-09-22  1:00       ` Jason Gunthorpe
2021-09-22  1:00         ` Jason Gunthorpe via iommu
2021-09-22  1:02         ` Tian, Kevin
2021-09-22  1:02           ` Tian, Kevin
2021-09-23  7:25         ` Eric Auger
2021-09-23  7:25           ` Eric Auger
2021-09-23 11:44           ` Jason Gunthorpe
2021-09-23 11:44             ` Jason Gunthorpe via iommu
2021-09-29  2:46         ` david
2021-09-29  2:46           ` david
2021-09-29 12:22           ` Jason Gunthorpe
2021-09-29 12:22             ` Jason Gunthorpe via iommu
2021-09-30  2:48             ` david
2021-09-30  2:48               ` david
2021-09-29  2:43   ` David Gibson
2021-09-29  2:43     ` David Gibson
2021-09-29  3:40     ` Tian, Kevin
2021-09-29  3:40       ` Tian, Kevin
2021-09-29  5:30     ` Tian, Kevin
2021-09-29  5:30       ` Tian, Kevin
2021-09-29  7:08       ` Cornelia Huck
2021-09-29  7:08         ` Cornelia Huck
2021-09-29 12:15         ` Jason Gunthorpe via iommu
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-19  6:38   ` Liu Yi L
2021-09-21 16:19   ` Jason Gunthorpe
2021-09-21 16:19     ` Jason Gunthorpe via iommu
2021-09-22  2:31     ` Lu Baolu
2021-09-22  2:31       ` Lu Baolu
2021-09-22  5:07       ` Christoph Hellwig
2021-09-22  5:07         ` Christoph Hellwig
2021-09-29  2:52   ` David Gibson
2021-09-29  2:52     ` David Gibson
2021-09-29  9:25     ` Lu Baolu
2021-09-29  9:25       ` Lu Baolu
2021-09-29  9:29       ` 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-19  6:38   ` Liu Yi L
2021-09-21 16:40   ` Jason Gunthorpe
2021-09-21 16:40     ` Jason Gunthorpe via iommu
2021-09-21 21:09     ` Alex Williamson
2021-09-21 21:09       ` Alex Williamson
2021-09-21 21:58       ` Jason Gunthorpe
2021-09-21 21:58         ` Jason Gunthorpe via iommu
2021-09-22  1:24         ` Tian, Kevin
2021-09-22  1:24           ` Tian, Kevin
2021-09-22  1:19       ` Tian, Kevin
2021-09-22  1:19         ` Tian, Kevin
2021-09-22 21:17         ` Alex Williamson
2021-09-22 21:17           ` Alex Williamson
2021-09-22 23:49           ` Tian, Kevin
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-19  6:38   ` Liu Yi L
2021-09-21 17:09   ` Jason Gunthorpe
2021-09-21 17:09     ` Jason Gunthorpe via iommu
2021-09-22  1:47     ` Tian, Kevin
2021-09-22  1:47       ` Tian, Kevin
2021-09-22 12:39       ` Jason Gunthorpe
2021-09-22 12:39         ` Jason Gunthorpe via iommu
2021-09-22 13:56         ` Tian, Kevin
2021-09-22 13:56           ` Tian, Kevin
2021-09-27  9:42         ` Tian, Kevin [this message]
2021-09-27  9:42           ` Tian, Kevin
2021-09-27 11:34           ` Lu Baolu
2021-09-27 11:34             ` Lu Baolu
2021-09-27 13:08             ` Tian, Kevin
2021-09-27 13:08               ` Tian, Kevin
2021-09-27 11:53           ` Jason Gunthorpe
2021-09-27 11:53             ` Jason Gunthorpe via iommu
2021-09-27 13:00             ` Tian, Kevin
2021-09-27 13:00               ` Tian, Kevin
2021-09-27 13:09               ` Jason Gunthorpe
2021-09-27 13:09                 ` Jason Gunthorpe via iommu
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-27 15:09             ` Jason Gunthorpe via iommu
2021-09-28  7:30             ` Tian, Kevin
2021-09-28  7:30               ` Tian, Kevin
2021-09-28 11:57               ` Jason Gunthorpe
2021-09-28 11:57                 ` Jason Gunthorpe via iommu
2021-09-28 13:35                 ` Lu Baolu
2021-09-28 13:35                   ` Lu Baolu
2021-09-28 14:07                   ` Jason Gunthorpe
2021-09-28 14:07                     ` Jason Gunthorpe via iommu
2021-09-29  0:38                     ` Tian, Kevin
2021-09-29  0:38                       ` Tian, Kevin
2021-09-29 12:59                       ` Jason Gunthorpe
2021-09-29 12:59                         ` Jason Gunthorpe via iommu
2021-10-15  1:29                         ` Tian, Kevin
2021-10-15  1:29                           ` Tian, Kevin
2021-10-15 11:09                           ` Jason Gunthorpe
2021-10-15 11:09                             ` Jason Gunthorpe via iommu
2021-10-18  1:52                             ` Tian, Kevin
2021-10-18  1:52                               ` Tian, Kevin
2021-09-29  2:22                     ` Lu Baolu
2021-09-29  2:22                       ` Lu Baolu
2021-09-29  2:29                       ` Tian, Kevin
2021-09-29  2:29                         ` Tian, Kevin
2021-09-29  2:38                         ` Lu Baolu
2021-09-29  2:38                           ` Lu Baolu
2021-09-29  4:55   ` David Gibson
2021-09-29  4:55     ` David Gibson
2021-09-29  5:38     ` Tian, Kevin
2021-09-29  5:38       ` Tian, Kevin
2021-09-29  6:35       ` David Gibson
2021-09-29  6:35         ` David Gibson
2021-09-29  7:31         ` Tian, Kevin
2021-09-29  7:31           ` Tian, Kevin
2021-09-30  3:05           ` David Gibson
2021-09-30  3:05             ` David Gibson
2021-09-29 12:57         ` Jason Gunthorpe
2021-09-29 12:57           ` Jason Gunthorpe via iommu
2021-09-30  3:09           ` David Gibson
2021-09-30  3:09             ` David Gibson
2021-09-30 22:28             ` Jason Gunthorpe
2021-09-30 22:28               ` Jason Gunthorpe via iommu
2021-10-01  3:54               ` David Gibson
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-19  6:38   ` Liu Yi L
2021-09-21 17:14   ` Jason Gunthorpe
2021-09-21 17:14     ` Jason Gunthorpe via iommu
2021-10-15  9:21     ` Liu, Yi L
2021-10-15  9:21       ` Liu, Yi L
2021-09-29  5:25   ` David Gibson
2021-09-29  5:25     ` David Gibson
2021-09-29 12:24     ` Jason Gunthorpe
2021-09-29 12:24       ` Jason Gunthorpe via iommu
2021-09-30  3:10       ` David Gibson
2021-09-30  3:10         ` David Gibson
2021-10-01 12:43         ` Jason Gunthorpe
2021-10-01 12:43           ` Jason Gunthorpe via iommu
2021-10-07  1:23           ` David Gibson
2021-10-07  1:23             ` David Gibson
2021-10-07 11:35             ` Jason Gunthorpe
2021-10-07 11:35               ` Jason Gunthorpe via iommu
2021-10-11  3:24               ` David Gibson
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-19  6:38   ` Liu Yi L
2021-09-19 10:08   ` kernel test robot
2021-09-19 10:08     ` kernel test robot
2021-09-21 17:29   ` Jason Gunthorpe
2021-09-21 17:29     ` Jason Gunthorpe via iommu
2021-09-22 21:01     ` Alex Williamson
2021-09-22 21:01       ` Alex Williamson
2021-09-22 23:01       ` Jason Gunthorpe
2021-09-22 23:01         ` Jason Gunthorpe via iommu
2021-09-29  6:00   ` David Gibson
2021-09-29  6:00     ` David Gibson
2021-09-29  6:41     ` Tian, Kevin
2021-09-29  6:41       ` Tian, Kevin
2021-09-29 12:28       ` Jason Gunthorpe
2021-09-29 12:28         ` Jason Gunthorpe via iommu
2021-09-29 22:34         ` Tian, Kevin
2021-09-29 22:34           ` Tian, Kevin
2021-09-30  3:12       ` David Gibson
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-19  6:38   ` Liu Yi L
2021-09-22 13:42   ` Eric Auger
2021-09-22 13:42     ` Eric Auger
2021-09-22 14:19     ` Tian, Kevin
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-19  6:38   ` Liu Yi L
2021-09-21 17:40   ` Jason Gunthorpe
2021-09-21 17:40     ` Jason Gunthorpe via iommu
2021-09-22  3:30     ` Tian, Kevin
2021-09-22  3:30       ` Tian, Kevin
2021-09-22 12:41       ` Jason Gunthorpe
2021-09-22 12:41         ` Jason Gunthorpe via iommu
2021-09-29  6:18         ` david
2021-09-29  6:18           ` david
2021-09-22 21:24   ` Alex Williamson
2021-09-22 21:24     ` Alex Williamson
2021-09-22 23:49     ` Jason Gunthorpe
2021-09-22 23:49       ` Jason Gunthorpe via iommu
2021-09-23  3:10       ` Tian, Kevin
2021-09-23  3:10         ` Tian, Kevin
2021-09-23 10:15         ` Jean-Philippe Brucker
2021-09-23 10:15           ` Jean-Philippe Brucker
2021-09-23 11:27           ` Jason Gunthorpe
2021-09-23 11:27             ` Jason Gunthorpe via iommu
2021-09-23 12:05             ` Tian, Kevin
2021-09-23 12:05               ` Tian, Kevin
2021-09-23 12:22               ` Jason Gunthorpe
2021-09-23 12:22                 ` Jason Gunthorpe via iommu
2021-09-29  8:48                 ` Tian, Kevin
2021-09-29  8:48                   ` Tian, Kevin
2021-09-29 12:36                   ` Jason Gunthorpe
2021-09-29 12:36                     ` Jason Gunthorpe via iommu
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  8:49                   ` Tian, Kevin
2021-09-30 13:43                   ` Lu Baolu
2021-09-30 13:43                     ` Lu Baolu
2021-10-01  3:24                     ` hch
2021-10-01  3:24                       ` hch
2021-09-30 22:08                   ` Jason Gunthorpe
2021-09-30 22:08                     ` Jason Gunthorpe via iommu
2021-09-23 11:36         ` Jason Gunthorpe
2021-09-23 11:36           ` Jason Gunthorpe via iommu
     [not found]       ` <BN9PR11MB5433409DF766AAEF1BB2CF258CA39@BN9PR11MB5433.namprd11.prod.outlook.com>
2021-09-23  3:38         ` Tian, Kevin
2021-09-23  3:38           ` Tian, Kevin
2021-09-23 11:42           ` Jason Gunthorpe
2021-09-23 11:42             ` Jason Gunthorpe via iommu
2021-09-30  9:35             ` Tian, Kevin
2021-09-30  9:35               ` Tian, Kevin
2021-09-30 22:23               ` Jason Gunthorpe
2021-09-30 22:23                 ` Jason Gunthorpe via iommu
2021-10-01  3:30                 ` hch
2021-10-01  3:30                   ` hch
2021-10-14  9:11                 ` Tian, Kevin
2021-10-14  9:11                   ` Tian, Kevin
2021-10-14 15:42                   ` Jason Gunthorpe
2021-10-14 15:42                     ` Jason Gunthorpe via iommu
2021-10-15  1:01                     ` Tian, Kevin
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  2:26                         ` Tian, Kevin
2021-10-21 14:58                         ` Jean-Philippe Brucker
2021-10-21 14:58                           ` Jean-Philippe Brucker
2021-10-21 23:22                           ` Jason Gunthorpe
2021-10-21 23:22                             ` Jason Gunthorpe via iommu
2021-10-22  7:49                             ` Jean-Philippe Brucker
2021-10-22  7:49                               ` Jean-Philippe Brucker
2021-10-25 16:51                               ` Jason Gunthorpe
2021-10-25 16:51                                 ` Jason Gunthorpe via iommu
2021-10-21 23:30                         ` Jason Gunthorpe
2021-10-21 23:30                           ` Jason Gunthorpe via iommu
2021-10-22  3:08                           ` Tian, Kevin
2021-10-22  3:08                             ` Tian, Kevin
2021-10-25 23:34                             ` Jason Gunthorpe
2021-10-25 23:34                               ` Jason Gunthorpe via iommu
2021-10-27  1:42                               ` Tian, Kevin
2021-10-27  1:42                                 ` Tian, Kevin
2021-10-28  2:07                               ` Tian, Kevin
2021-10-28  2:07                                 ` Tian, Kevin
2021-10-29 13:55                                 ` Jason Gunthorpe
2021-10-29 13:55                                   ` Jason Gunthorpe via iommu
2021-09-29  6:23   ` David Gibson
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-19  6:38   ` Liu Yi L
2021-09-19 11:03   ` kernel test robot
2021-09-19 11:03     ` kernel test robot
2021-09-21 17:44   ` Jason Gunthorpe
2021-09-21 17:44     ` Jason Gunthorpe via iommu
2021-09-22  3:40     ` Tian, Kevin
2021-09-22  3:40       ` Tian, Kevin
2021-09-22 14:09       ` Jason Gunthorpe
2021-09-22 14:09         ` Jason Gunthorpe via iommu
2021-09-23  9:14         ` Tian, Kevin
2021-09-23  9:14           ` Tian, Kevin
2021-09-23 12:06           ` Jason Gunthorpe
2021-09-23 12:06             ` Jason Gunthorpe via iommu
2021-09-23 12:22             ` Tian, Kevin
2021-09-23 12:22               ` Tian, Kevin
2021-09-23 12:31               ` Jason Gunthorpe
2021-09-23 12:31                 ` Jason Gunthorpe via iommu
2021-09-23 12:45                 ` Tian, Kevin
2021-09-23 12:45                   ` Tian, Kevin
2021-09-23 13:01                   ` Jason Gunthorpe
2021-09-23 13:01                     ` Jason Gunthorpe via iommu
2021-09-23 13:20                     ` Tian, Kevin
2021-09-23 13:20                       ` Tian, Kevin
2021-09-23 13:30                       ` Jason Gunthorpe
2021-09-23 13:30                         ` Jason Gunthorpe via iommu
2021-09-23 13:41                         ` Tian, Kevin
2021-09-23 13:41                           ` Tian, Kevin
2021-10-01  6:30               ` david
2021-10-01  6:30                 ` david
2021-10-01  6:26           ` david
2021-10-01  6:26             ` david
2021-10-01  6:19         ` david
2021-10-01  6:19           ` david
2021-10-01 12:25           ` Jason Gunthorpe
2021-10-01 12:25             ` Jason Gunthorpe via iommu
2021-10-02  4:21             ` david
2021-10-02  4:21               ` david
2021-10-02 12:25               ` Jason Gunthorpe
2021-10-02 12:25                 ` Jason Gunthorpe via iommu
2021-10-11  5:37                 ` david
2021-10-11  5:37                   ` david
2021-10-11 17:17                   ` Jason Gunthorpe
2021-10-11 17:17                     ` Jason Gunthorpe via iommu
2021-10-14  4:33                     ` david
2021-10-14  4:33                       ` david
2021-10-14 15:06                       ` Jason Gunthorpe via iommu
2021-10-14 15:06                         ` Jason Gunthorpe
2021-10-18  3:40                         ` david
2021-10-18  3:40                           ` david
2021-10-01  6:15       ` david
2021-10-01  6:15         ` david
2021-09-22 12:51     ` Liu, Yi L
2021-09-22 12:51       ` Liu, Yi L
2021-09-22 13:32       ` Jason Gunthorpe
2021-09-22 13:32         ` Jason Gunthorpe via iommu
2021-09-23  6:26         ` Liu, Yi L
2021-09-23  6:26           ` Liu, Yi L
2021-10-01  6:13     ` David Gibson
2021-10-01  6:13       ` David Gibson
2021-10-01 12:22       ` Jason Gunthorpe
2021-10-01 12:22         ` Jason Gunthorpe via iommu
2021-10-11  6:02         ` David Gibson
2021-10-11  6:02           ` David Gibson
2021-10-11  8:49           ` Jean-Philippe Brucker
2021-10-11  8:49             ` Jean-Philippe Brucker
2021-10-11 23:38             ` Jason Gunthorpe
2021-10-11 23:38               ` Jason Gunthorpe via iommu
2021-10-12  8:33               ` Jean-Philippe Brucker
2021-10-12  8:33                 ` Jean-Philippe Brucker
2021-10-13  7:14                 ` Tian, Kevin
2021-10-13  7:14                   ` Tian, Kevin
2021-10-13  7:07             ` Tian, Kevin
2021-10-13  7:07               ` Tian, Kevin
2021-10-14  4:38             ` David Gibson
2021-10-14  4:38               ` David Gibson
2021-10-11 18:49           ` Jason Gunthorpe
2021-10-11 18:49             ` Jason Gunthorpe via iommu
2021-10-14  4:53             ` David Gibson
2021-10-14  4:53               ` David Gibson
2021-10-14 14:52               ` Jason Gunthorpe
2021-10-14 14:52                 ` Jason Gunthorpe via iommu
2021-10-18  3:50                 ` David Gibson
2021-10-18  3:50                   ` David Gibson
2021-10-18 17:42                   ` Jason Gunthorpe
2021-10-18 17:42                     ` Jason Gunthorpe via iommu
2021-09-22 13:45   ` Jean-Philippe Brucker
2021-09-22 13:45     ` Jean-Philippe Brucker
2021-09-29 10:47     ` Liu, Yi L
2021-09-29 10:47       ` Liu, Yi L
2021-10-01  6:11   ` David Gibson
2021-10-01  6:11     ` David Gibson
2021-10-13  7:00     ` Tian, Kevin
2021-10-13  7:00       ` Tian, Kevin
2021-10-14  5:00       ` David Gibson
2021-10-14  5:00         ` David Gibson
2021-10-14  6:53         ` Tian, Kevin
2021-10-14  6:53           ` Tian, Kevin
2021-10-25  5:05           ` David Gibson
2021-10-25  5:05             ` David Gibson
2021-10-27  2:32             ` Tian, Kevin
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-19  6:38   ` Liu Yi L
2021-09-21 17:47   ` Jason Gunthorpe
2021-09-21 17:47     ` Jason Gunthorpe via iommu
2021-09-22  3:41     ` Tian, Kevin
2021-09-22  3:41       ` Tian, Kevin
2021-09-22 12:55       ` Jason Gunthorpe
2021-09-22 12:55         ` Jason Gunthorpe via iommu
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-09-19  6:38   ` Liu Yi L
2021-10-14  5:24   ` David Gibson
2021-10-14  5:24     ` David Gibson
2021-10-14  7:06     ` Tian, Kevin
2021-10-14  7:06       ` Tian, Kevin
2021-10-18  3:57       ` David Gibson
2021-10-18  3:57         ` David Gibson
2021-10-18 16:32         ` Jason Gunthorpe
2021-10-18 16:32           ` Jason Gunthorpe via iommu
2021-10-25  5:14           ` David Gibson
2021-10-25  5:14             ` David Gibson
2021-10-25 12:14             ` Jason Gunthorpe
2021-10-25 12:14               ` Jason Gunthorpe via iommu
2021-10-25 13:16               ` David Gibson
2021-10-25 13:16                 ` David Gibson
2021-10-25 23:36                 ` Jason Gunthorpe
2021-10-25 23:36                   ` Jason Gunthorpe via iommu
2021-10-26  9:23                   ` David Gibson
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-19  6:38   ` Liu Yi L
2021-09-21 18:02   ` Jason Gunthorpe
2021-09-21 18:02     ` Jason Gunthorpe via iommu
2021-09-22  3:53     ` Tian, Kevin
2021-09-22  3:53       ` Tian, Kevin
2021-09-22 12:57       ` Jason Gunthorpe
2021-09-22 12:57         ` Jason Gunthorpe via iommu
2021-09-22 14:16         ` Tian, Kevin
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-19  6:38   ` Liu Yi L
2021-09-21 18:04   ` Jason Gunthorpe
2021-09-21 18:04     ` Jason Gunthorpe via iommu
2021-09-22  3:56     ` Tian, Kevin
2021-09-22  3:56       ` Tian, Kevin
2021-09-22 12:58       ` Jason Gunthorpe
2021-09-22 12:58         ` Jason Gunthorpe via iommu
2021-09-22 14:17         ` Tian, Kevin
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-19  6:38   ` Liu Yi L
2021-09-21 18:14   ` Jason Gunthorpe
2021-09-21 18:14     ` Jason Gunthorpe via iommu
2021-09-22  3:57     ` Tian, Kevin
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-19  6:38   ` Liu Yi L
2021-09-19  9:38   ` kernel test robot
2021-09-19 16:41   ` kernel test robot
2021-09-22 14:49   ` Jean-Philippe Brucker
2021-09-22 14:49     ` Jean-Philippe Brucker
2021-09-29 10:44     ` Liu, Yi L
2021-09-29 10:44       ` Liu, Yi L
2021-09-29 12:07       ` Jean-Philippe Brucker
2021-09-29 12:07         ` Jean-Philippe Brucker
2021-09-29 12:31         ` Jason Gunthorpe
2021-09-29 12:31           ` Jason Gunthorpe via iommu
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   ` Liu Yi L
2021-09-19 11:53   ` kernel test robot
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   ` Liu Yi L
2021-09-19  6:38 ` [RFC 20/20] Doc: Add documentation for /dev/iommu Liu Yi L
2021-09-19  6:38   ` Liu Yi L
2021-10-29  0:15   ` David Gibson
2021-10-29  0:15     ` David Gibson
2021-10-29 12:44     ` Jason Gunthorpe
2021-10-29 12:44       ` Jason Gunthorpe via iommu
2021-09-19  6:45 ` [RFC 00/20] Introduce /dev/iommu for userspace I/O address space management Liu, Yi L
2021-09-19  6:45   ` Liu, Yi L
2021-09-21 13:45 ` Jason Gunthorpe
2021-09-21 13:45   ` Jason Gunthorpe via iommu
2021-09-22  3:25   ` Liu, Yi L
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=BN9PR11MB5433CE19425E85E7F52093278CA79@BN9PR11MB5433.namprd11.prod.outlook.com \
    --to=kevin.tian@intel.com \
    --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=david@gibson.dropbear.id.au \
    --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=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 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.