All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: David1.Zhou@amd.com, hch@infradead.org, jgg@ziepe.ca,
	daniel@ffwll.ch, dri-devel@lists.freedesktop.org,
	linaro-mm-sig@lists.linaro.org, linux-media@vger.kernel.org,
	intel-gfx@lists.freedesktop.org
Subject: [PATCH 2/6] dma-buf: add peer2peer flag
Date: Wed, 11 Mar 2020 14:51:54 +0100	[thread overview]
Message-ID: <20200311135158.3310-3-christian.koenig@amd.com> (raw)
In-Reply-To: <20200311135158.3310-1-christian.koenig@amd.com>

Add a peer2peer flag noting that the importer can deal with device
resources which are not backed by pages.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/dma-buf/dma-buf.c |  2 ++
 include/linux/dma-buf.h   | 10 ++++++++++
 2 files changed, 12 insertions(+)

diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
index f4ace9af2191..f9220928ec90 100644
--- a/drivers/dma-buf/dma-buf.c
+++ b/drivers/dma-buf/dma-buf.c
@@ -689,6 +689,8 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev,
 
 	attach->dev = dev;
 	attach->dmabuf = dmabuf;
+	if (importer_ops)
+		attach->peer2peer = importer_ops->allow_peer2peer;
 	attach->importer_ops = importer_ops;
 	attach->importer_priv = importer_priv;
 
diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
index 1ade486fc2bb..82e0a4a64601 100644
--- a/include/linux/dma-buf.h
+++ b/include/linux/dma-buf.h
@@ -334,6 +334,14 @@ struct dma_buf {
  * Attachment operations implemented by the importer.
  */
 struct dma_buf_attach_ops {
+	/**
+	 * @allow_peer2peer:
+	 *
+	 * If this is set to true the importer must be able to handle peer
+	 * resources without struct pages.
+	 */
+	bool allow_peer2peer;
+
 	/**
 	 * @move_notify
 	 *
@@ -362,6 +370,7 @@ struct dma_buf_attach_ops {
  * @node: list of dma_buf_attachment, protected by dma_resv lock of the dmabuf.
  * @sgt: cached mapping.
  * @dir: direction of cached mapping.
+ * @peer2peer: true if the importer can handle peer resources without pages.
  * @priv: exporter specific attachment data.
  * @importer_ops: importer operations for this attachment, if provided
  * dma_buf_map/unmap_attachment() must be called with the dma_resv lock held.
@@ -382,6 +391,7 @@ struct dma_buf_attachment {
 	struct list_head node;
 	struct sg_table *sgt;
 	enum dma_data_direction dir;
+	bool peer2peer;
 	const struct dma_buf_attach_ops *importer_ops;
 	void *importer_priv;
 	void *priv;
-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: David1.Zhou@amd.com, hch@infradead.org, jgg@ziepe.ca,
	daniel@ffwll.ch, dri-devel@lists.freedesktop.org,
	linaro-mm-sig@lists.linaro.org, linux-media@vger.kernel.org,
	intel-gfx@lists.freedesktop.org
Subject: [PATCH 2/6] dma-buf: add peer2peer flag
Date: Wed, 11 Mar 2020 14:51:54 +0100	[thread overview]
Message-ID: <20200311135158.3310-3-christian.koenig@amd.com> (raw)
In-Reply-To: <20200311135158.3310-1-christian.koenig@amd.com>

Add a peer2peer flag noting that the importer can deal with device
resources which are not backed by pages.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/dma-buf/dma-buf.c |  2 ++
 include/linux/dma-buf.h   | 10 ++++++++++
 2 files changed, 12 insertions(+)

diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
index f4ace9af2191..f9220928ec90 100644
--- a/drivers/dma-buf/dma-buf.c
+++ b/drivers/dma-buf/dma-buf.c
@@ -689,6 +689,8 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev,
 
 	attach->dev = dev;
 	attach->dmabuf = dmabuf;
+	if (importer_ops)
+		attach->peer2peer = importer_ops->allow_peer2peer;
 	attach->importer_ops = importer_ops;
 	attach->importer_priv = importer_priv;
 
diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
index 1ade486fc2bb..82e0a4a64601 100644
--- a/include/linux/dma-buf.h
+++ b/include/linux/dma-buf.h
@@ -334,6 +334,14 @@ struct dma_buf {
  * Attachment operations implemented by the importer.
  */
 struct dma_buf_attach_ops {
+	/**
+	 * @allow_peer2peer:
+	 *
+	 * If this is set to true the importer must be able to handle peer
+	 * resources without struct pages.
+	 */
+	bool allow_peer2peer;
+
 	/**
 	 * @move_notify
 	 *
@@ -362,6 +370,7 @@ struct dma_buf_attach_ops {
  * @node: list of dma_buf_attachment, protected by dma_resv lock of the dmabuf.
  * @sgt: cached mapping.
  * @dir: direction of cached mapping.
+ * @peer2peer: true if the importer can handle peer resources without pages.
  * @priv: exporter specific attachment data.
  * @importer_ops: importer operations for this attachment, if provided
  * dma_buf_map/unmap_attachment() must be called with the dma_resv lock held.
@@ -382,6 +391,7 @@ struct dma_buf_attachment {
 	struct list_head node;
 	struct sg_table *sgt;
 	enum dma_data_direction dir;
+	bool peer2peer;
 	const struct dma_buf_attach_ops *importer_ops;
 	void *importer_priv;
 	void *priv;
-- 
2.17.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: David1.Zhou@amd.com, hch@infradead.org, jgg@ziepe.ca,
	daniel@ffwll.ch, dri-devel@lists.freedesktop.org,
	linaro-mm-sig@lists.linaro.org, linux-media@vger.kernel.org,
	intel-gfx@lists.freedesktop.org
Subject: [Intel-gfx] [PATCH 2/6] dma-buf: add peer2peer flag
Date: Wed, 11 Mar 2020 14:51:54 +0100	[thread overview]
Message-ID: <20200311135158.3310-3-christian.koenig@amd.com> (raw)
In-Reply-To: <20200311135158.3310-1-christian.koenig@amd.com>

Add a peer2peer flag noting that the importer can deal with device
resources which are not backed by pages.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/dma-buf/dma-buf.c |  2 ++
 include/linux/dma-buf.h   | 10 ++++++++++
 2 files changed, 12 insertions(+)

diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
index f4ace9af2191..f9220928ec90 100644
--- a/drivers/dma-buf/dma-buf.c
+++ b/drivers/dma-buf/dma-buf.c
@@ -689,6 +689,8 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev,
 
 	attach->dev = dev;
 	attach->dmabuf = dmabuf;
+	if (importer_ops)
+		attach->peer2peer = importer_ops->allow_peer2peer;
 	attach->importer_ops = importer_ops;
 	attach->importer_priv = importer_priv;
 
diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
index 1ade486fc2bb..82e0a4a64601 100644
--- a/include/linux/dma-buf.h
+++ b/include/linux/dma-buf.h
@@ -334,6 +334,14 @@ struct dma_buf {
  * Attachment operations implemented by the importer.
  */
 struct dma_buf_attach_ops {
+	/**
+	 * @allow_peer2peer:
+	 *
+	 * If this is set to true the importer must be able to handle peer
+	 * resources without struct pages.
+	 */
+	bool allow_peer2peer;
+
 	/**
 	 * @move_notify
 	 *
@@ -362,6 +370,7 @@ struct dma_buf_attach_ops {
  * @node: list of dma_buf_attachment, protected by dma_resv lock of the dmabuf.
  * @sgt: cached mapping.
  * @dir: direction of cached mapping.
+ * @peer2peer: true if the importer can handle peer resources without pages.
  * @priv: exporter specific attachment data.
  * @importer_ops: importer operations for this attachment, if provided
  * dma_buf_map/unmap_attachment() must be called with the dma_resv lock held.
@@ -382,6 +391,7 @@ struct dma_buf_attachment {
 	struct list_head node;
 	struct sg_table *sgt;
 	enum dma_data_direction dir;
+	bool peer2peer;
 	const struct dma_buf_attach_ops *importer_ops;
 	void *importer_priv;
 	void *priv;
-- 
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2020-03-11 13:52 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-11 13:51 P2P for DMA-buf Christian König
2020-03-11 13:51 ` [Intel-gfx] " Christian König
2020-03-11 13:51 ` Christian König
2020-03-11 13:51 ` [PATCH 1/6] lib/scatterlist: add sg_set_dma_addr() function Christian König
2020-03-11 13:51   ` [Intel-gfx] " Christian König
2020-03-11 13:51   ` Christian König
2020-03-11 15:28   ` Christoph Hellwig
2020-03-11 15:28     ` [Intel-gfx] " Christoph Hellwig
2020-03-12 10:14     ` Christian König
2020-03-12 10:14       ` [Intel-gfx] " Christian König
2020-03-12 10:14       ` Christian König
2020-03-12 10:19       ` Christoph Hellwig
2020-03-12 10:19         ` [Intel-gfx] " Christoph Hellwig
2020-03-12 10:31         ` Christian König
2020-03-12 10:31           ` [Intel-gfx] " Christian König
2020-03-12 10:31           ` Christian König
2020-03-12 10:47           ` Christoph Hellwig
2020-03-12 10:47             ` [Intel-gfx] " Christoph Hellwig
2020-03-12 11:02             ` Christian König
2020-03-12 11:02               ` [Intel-gfx] " Christian König
2020-03-12 11:02               ` Christian König
2020-03-12 14:19             ` Jason Gunthorpe
2020-03-12 14:19               ` Jason Gunthorpe
2020-03-12 15:39               ` Christian König
2020-03-12 15:39                 ` [Intel-gfx] " Christian König
2020-03-12 15:39                 ` Christian König
2020-03-12 16:19                 ` Jason Gunthorpe
2020-03-12 16:19                   ` Jason Gunthorpe
2020-03-12 16:13               ` Logan Gunthorpe
2020-03-12 16:13                 ` [Intel-gfx] " Logan Gunthorpe
2020-03-12 16:13                 ` Logan Gunthorpe
2020-03-13 11:21               ` Christoph Hellwig
2020-03-13 11:21                 ` [Intel-gfx] " Christoph Hellwig
2020-03-13 12:17                 ` Jason Gunthorpe
2020-03-13 12:17                   ` Jason Gunthorpe
2020-03-16  8:56                   ` Christoph Hellwig
2020-03-16  8:56                     ` [Intel-gfx] " Christoph Hellwig
2020-03-16  9:41                     ` Christian König
2020-03-16  9:41                       ` [Intel-gfx] " Christian König
2020-03-16  9:41                       ` Christian König
2020-03-16  9:52                       ` Christoph Hellwig
2020-03-16  9:52                         ` [Intel-gfx] " Christoph Hellwig
2020-03-16 12:37                         ` Jason Gunthorpe
2020-03-16 12:37                           ` Jason Gunthorpe
2020-03-13 13:33                 ` Christian König
2020-03-13 13:33                   ` [Intel-gfx] " Christian König
2020-03-13 13:33                   ` Christian König
2020-03-11 13:51 ` Christian König [this message]
2020-03-11 13:51   ` [Intel-gfx] [PATCH 2/6] dma-buf: add peer2peer flag Christian König
2020-03-11 13:51   ` Christian König
2020-03-11 13:51 ` [PATCH 3/6] drm/amdgpu: note that we can handle peer2peer DMA-buf Christian König
2020-03-11 13:51   ` [Intel-gfx] " Christian König
2020-03-11 13:51   ` Christian König
2020-03-11 13:51 ` [PATCH 4/6] drm/amdgpu: add checks if DMA-buf P2P is supported Christian König
2020-03-11 13:51   ` [Intel-gfx] " Christian König
2020-03-11 13:51   ` Christian König
2020-03-11 14:04   ` Jason Gunthorpe
2020-03-11 14:04     ` Jason Gunthorpe
2020-03-11 14:33     ` Christian König
2020-03-11 14:33       ` [Intel-gfx] " Christian König
2020-03-11 14:33       ` Christian König
2020-03-11 14:38       ` Jason Gunthorpe
2020-03-11 14:38         ` Jason Gunthorpe
2020-03-11 14:43         ` Christian König
2020-03-11 14:43           ` [Intel-gfx] " Christian König
2020-03-11 14:43           ` Christian König
2020-03-11 14:48           ` Jason Gunthorpe
2020-03-11 14:48             ` Jason Gunthorpe
2020-03-11 13:51 ` [PATCH 5/6] drm/amdgpu: add support for exporting VRAM using DMA-buf v2 Christian König
2020-03-11 13:51   ` [Intel-gfx] " Christian König
2020-03-11 13:51   ` Christian König
2020-03-11 14:33   ` Jason Gunthorpe
2020-03-11 14:33     ` Jason Gunthorpe
2020-03-11 14:39   ` Jason Gunthorpe
2020-03-11 14:39     ` Jason Gunthorpe
2020-03-11 15:08   ` Alex Deucher
2020-03-11 15:08     ` [Intel-gfx] " Alex Deucher
2020-03-11 15:08     ` Alex Deucher
2020-03-11 13:51 ` [PATCH 6/6] drm/amdgpu: improve amdgpu_gem_info debugfs file Christian König
2020-03-11 13:51   ` [Intel-gfx] " Christian König
2020-03-11 13:51   ` Christian König
2020-03-11 18:09 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/6] lib/scatterlist: add sg_set_dma_addr() function Patchwork
2020-03-11 18:34 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork

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=20200311135158.3310-3-christian.koenig@amd.com \
    --to=ckoenig.leichtzumerken@gmail.com \
    --cc=David1.Zhou@amd.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hch@infradead.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jgg@ziepe.ca \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-media@vger.kernel.org \
    /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.