Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback
@ 2019-10-31  8:29 Janusz Krzysztofik
  2019-10-31  8:29 ` [Intel-gfx] " Janusz Krzysztofik
                   ` (5 more replies)
  0 siblings, 6 replies; 16+ messages in thread
From: Janusz Krzysztofik @ 2019-10-31  8:29 UTC (permalink / raw)
  To: intel-gfx; +Cc: Daniel Vetter, Matthew Auld

We need dmabuf specific pwrite() callback utilizing dma-buf API,
otherwise GEM_PWRITE IOCTL will no longer work with dma-buf backed
(i.e., PRIME imported) objects on hardware with no mappable aperture.

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 55 ++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
index 96ce95c8ac5a..93eea1031c82 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
@@ -248,9 +248,64 @@ static void i915_gem_object_put_pages_dmabuf(struct drm_i915_gem_object *obj,
 				 DMA_BIDIRECTIONAL);
 }
 
+static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
+					 const struct drm_i915_gem_pwrite *args)
+{
+	struct dma_buf *dmabuf = obj->base.import_attach->dmabuf;
+	void __user *user_data = u64_to_user_ptr(args->data_ptr);
+	struct file *file = dmabuf->file;
+	const struct file_operations *fop = file->f_op;
+	void __force *vaddr;
+	int ret;
+
+	if (fop->write) {
+		loff_t offset = args->offset;
+
+		/*
+		 * fop->write() is supposed to call dma_buf_begin_cpu_access()
+		 * if O_SYNC flag is set, avoid calling it twice
+		 */
+		if (!(file->f_flags & O_SYNC)) {
+			ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
+			if (ret)
+				return ret;
+		}
+
+		ret = fop->write(file, user_data, args->size, &offset);
+
+		if (!(file->f_flags & O_SYNC))
+			dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
+
+		if (!ret)
+			return 0;
+	}
+
+	/* dma-buf file .write() not supported or failed, try dma_buf_vmap() */
+	ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
+	if (ret)
+		return ret;
+
+	vaddr = dma_buf_vmap(dmabuf);
+	if (!vaddr)
+		goto out_err;
+
+	ret = copy_from_user(vaddr + args->offset, user_data, args->size);
+	dma_buf_vunmap(dmabuf, vaddr);
+	if (!ret)
+		goto out_end;
+
+out_err:
+	/* fall back to GTT mapping */
+	ret = -ENODEV;
+out_end:
+	dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
+	return ret;
+}
+
 static const struct drm_i915_gem_object_ops i915_gem_object_dmabuf_ops = {
 	.get_pages = i915_gem_object_get_pages_dmabuf,
 	.put_pages = i915_gem_object_put_pages_dmabuf,
+	.pwrite = i915_gem_object_pwrite_dmabuf,
 };
 
 struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev,
-- 
2.21.0

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

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Intel-gfx] [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback
  2019-10-31  8:29 [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback Janusz Krzysztofik
@ 2019-10-31  8:29 ` Janusz Krzysztofik
  2019-10-31  8:29 ` [RESEND PATCH 2/3] drm/i915: Add vfunc for pread Janusz Krzysztofik
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 16+ messages in thread
From: Janusz Krzysztofik @ 2019-10-31  8:29 UTC (permalink / raw)
  To: intel-gfx; +Cc: Daniel Vetter, Matthew Auld

We need dmabuf specific pwrite() callback utilizing dma-buf API,
otherwise GEM_PWRITE IOCTL will no longer work with dma-buf backed
(i.e., PRIME imported) objects on hardware with no mappable aperture.

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 55 ++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
index 96ce95c8ac5a..93eea1031c82 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
@@ -248,9 +248,64 @@ static void i915_gem_object_put_pages_dmabuf(struct drm_i915_gem_object *obj,
 				 DMA_BIDIRECTIONAL);
 }
 
+static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
+					 const struct drm_i915_gem_pwrite *args)
+{
+	struct dma_buf *dmabuf = obj->base.import_attach->dmabuf;
+	void __user *user_data = u64_to_user_ptr(args->data_ptr);
+	struct file *file = dmabuf->file;
+	const struct file_operations *fop = file->f_op;
+	void __force *vaddr;
+	int ret;
+
+	if (fop->write) {
+		loff_t offset = args->offset;
+
+		/*
+		 * fop->write() is supposed to call dma_buf_begin_cpu_access()
+		 * if O_SYNC flag is set, avoid calling it twice
+		 */
+		if (!(file->f_flags & O_SYNC)) {
+			ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
+			if (ret)
+				return ret;
+		}
+
+		ret = fop->write(file, user_data, args->size, &offset);
+
+		if (!(file->f_flags & O_SYNC))
+			dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
+
+		if (!ret)
+			return 0;
+	}
+
+	/* dma-buf file .write() not supported or failed, try dma_buf_vmap() */
+	ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
+	if (ret)
+		return ret;
+
+	vaddr = dma_buf_vmap(dmabuf);
+	if (!vaddr)
+		goto out_err;
+
+	ret = copy_from_user(vaddr + args->offset, user_data, args->size);
+	dma_buf_vunmap(dmabuf, vaddr);
+	if (!ret)
+		goto out_end;
+
+out_err:
+	/* fall back to GTT mapping */
+	ret = -ENODEV;
+out_end:
+	dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
+	return ret;
+}
+
 static const struct drm_i915_gem_object_ops i915_gem_object_dmabuf_ops = {
 	.get_pages = i915_gem_object_get_pages_dmabuf,
 	.put_pages = i915_gem_object_put_pages_dmabuf,
+	.pwrite = i915_gem_object_pwrite_dmabuf,
 };
 
 struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev,
-- 
2.21.0

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

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [RESEND PATCH 2/3] drm/i915: Add vfunc for pread
  2019-10-31  8:29 [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback Janusz Krzysztofik
  2019-10-31  8:29 ` [Intel-gfx] " Janusz Krzysztofik
@ 2019-10-31  8:29 ` Janusz Krzysztofik
  2019-10-31  8:29   ` [Intel-gfx] " Janusz Krzysztofik
  2019-10-31  8:29 ` [RESEND PATCH 3/3] drm/i915/dmabuf: Implement pread() callback Janusz Krzysztofik
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 16+ messages in thread
From: Janusz Krzysztofik @ 2019-10-31  8:29 UTC (permalink / raw)
  To: intel-gfx; +Cc: Daniel Vetter, Matthew Auld

From: Matthew Auld <matthew.auld@intel.com>

Similar to pwrite, we need pread for (better) support of non-GTT
backends.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 2 ++
 drivers/gpu/drm/i915/i915_gem.c                  | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
index a387e3ee728b..3ad13556ed75 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -55,6 +55,8 @@ struct drm_i915_gem_object_ops {
 	void (*truncate)(struct drm_i915_gem_object *obj);
 	void (*writeback)(struct drm_i915_gem_object *obj);
 
+	int (*pread)(struct drm_i915_gem_object *obj,
+		     const struct drm_i915_gem_pread *arg);
 	int (*pwrite)(struct drm_i915_gem_object *obj,
 		      const struct drm_i915_gem_pwrite *arg);
 
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index dd0a3271b4e2..bb9121887ce6 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -469,6 +469,12 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
 
 	trace_i915_gem_object_pread(obj, args->offset, args->size);
 
+	if (obj->ops->pread) {
+		ret = obj->ops->pread(obj, args);
+		if (ret != -ENODEV)
+			goto out;
+	}
+
 	ret = i915_gem_object_wait(obj,
 				   I915_WAIT_INTERRUPTIBLE,
 				   MAX_SCHEDULE_TIMEOUT);
-- 
2.21.0

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

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Intel-gfx] [RESEND PATCH 2/3] drm/i915: Add vfunc for pread
  2019-10-31  8:29 ` [RESEND PATCH 2/3] drm/i915: Add vfunc for pread Janusz Krzysztofik
@ 2019-10-31  8:29   ` Janusz Krzysztofik
  0 siblings, 0 replies; 16+ messages in thread
From: Janusz Krzysztofik @ 2019-10-31  8:29 UTC (permalink / raw)
  To: intel-gfx; +Cc: Daniel Vetter, Matthew Auld

From: Matthew Auld <matthew.auld@intel.com>

Similar to pwrite, we need pread for (better) support of non-GTT
backends.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 2 ++
 drivers/gpu/drm/i915/i915_gem.c                  | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
index a387e3ee728b..3ad13556ed75 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -55,6 +55,8 @@ struct drm_i915_gem_object_ops {
 	void (*truncate)(struct drm_i915_gem_object *obj);
 	void (*writeback)(struct drm_i915_gem_object *obj);
 
+	int (*pread)(struct drm_i915_gem_object *obj,
+		     const struct drm_i915_gem_pread *arg);
 	int (*pwrite)(struct drm_i915_gem_object *obj,
 		      const struct drm_i915_gem_pwrite *arg);
 
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index dd0a3271b4e2..bb9121887ce6 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -469,6 +469,12 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
 
 	trace_i915_gem_object_pread(obj, args->offset, args->size);
 
+	if (obj->ops->pread) {
+		ret = obj->ops->pread(obj, args);
+		if (ret != -ENODEV)
+			goto out;
+	}
+
 	ret = i915_gem_object_wait(obj,
 				   I915_WAIT_INTERRUPTIBLE,
 				   MAX_SCHEDULE_TIMEOUT);
-- 
2.21.0

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

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [RESEND PATCH 3/3] drm/i915/dmabuf: Implement pread() callback
  2019-10-31  8:29 [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback Janusz Krzysztofik
  2019-10-31  8:29 ` [Intel-gfx] " Janusz Krzysztofik
  2019-10-31  8:29 ` [RESEND PATCH 2/3] drm/i915: Add vfunc for pread Janusz Krzysztofik
@ 2019-10-31  8:29 ` Janusz Krzysztofik
  2019-10-31  8:29   ` [Intel-gfx] " Janusz Krzysztofik
  2019-10-31  9:14 ` ✓ Fi.CI.BAT: success for series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 16+ messages in thread
From: Janusz Krzysztofik @ 2019-10-31  8:29 UTC (permalink / raw)
  To: intel-gfx; +Cc: Daniel Vetter, Matthew Auld

We need dmabuf specific pread() callback utilizing dma-buf API,
otherwise GEM_PREAD IOCTL will no longer work with dma-buf backed
(i.e., PRIME imported) objects on hardware with no mappable aperture.

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 55 ++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
index 93eea1031c82..207dbf044296 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
@@ -248,6 +248,60 @@ static void i915_gem_object_put_pages_dmabuf(struct drm_i915_gem_object *obj,
 				 DMA_BIDIRECTIONAL);
 }
 
+static int i915_gem_object_pread_dmabuf(struct drm_i915_gem_object *obj,
+					const struct drm_i915_gem_pread *args)
+{
+	struct dma_buf *dmabuf = obj->base.import_attach->dmabuf;
+	void __user *user_data = u64_to_user_ptr(args->data_ptr);
+	struct file *file = dmabuf->file;
+	const struct file_operations *fop = file->f_op;
+	void __force *vaddr;
+	int ret;
+
+	if (fop->read) {
+		loff_t offset = args->offset;
+
+		/*
+		 * fop->read() is supposed to call dma_buf_begin_cpu_access()
+		 * if O_SYNC flag is set, avoid calling it twice
+		 */
+		if (!(file->f_flags & O_SYNC)) {
+			ret = dma_buf_begin_cpu_access(dmabuf, DMA_FROM_DEVICE);
+			if (ret)
+				return ret;
+		}
+
+		ret = fop->read(file, user_data, args->size, &offset);
+
+		if (!(file->f_flags & O_SYNC))
+			dma_buf_end_cpu_access(dmabuf, DMA_FROM_DEVICE);
+
+		if (!ret)
+			return 0;
+	}
+
+	/* dma-buf file .read() not supported or failed, try dma_buf_vmap() */
+	ret = dma_buf_begin_cpu_access(dmabuf, DMA_FROM_DEVICE);
+	if (ret)
+		return ret;
+
+	vaddr = dma_buf_vmap(dmabuf);
+	if (!vaddr)
+		goto out_err;
+
+	ret = copy_to_user(user_data, vaddr + args->offset, args->size);
+	dma_buf_vunmap(dmabuf, vaddr);
+	if (!ret)
+		goto out_end;
+
+out_err:
+	/* fall back to GTT mapping */
+	ret = -ENODEV;
+out_end:
+	dma_buf_end_cpu_access(dmabuf, DMA_FROM_DEVICE);
+	return ret;
+}
+
 static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
 					 const struct drm_i915_gem_pwrite *args)
 {
@@ -305,6 +359,7 @@ static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
 static const struct drm_i915_gem_object_ops i915_gem_object_dmabuf_ops = {
 	.get_pages = i915_gem_object_get_pages_dmabuf,
 	.put_pages = i915_gem_object_put_pages_dmabuf,
+	.pread = i915_gem_object_pread_dmabuf,
 	.pwrite = i915_gem_object_pwrite_dmabuf,
 };
 
-- 
2.21.0

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

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Intel-gfx] [RESEND PATCH 3/3] drm/i915/dmabuf: Implement pread() callback
  2019-10-31  8:29 ` [RESEND PATCH 3/3] drm/i915/dmabuf: Implement pread() callback Janusz Krzysztofik
@ 2019-10-31  8:29   ` Janusz Krzysztofik
  0 siblings, 0 replies; 16+ messages in thread
From: Janusz Krzysztofik @ 2019-10-31  8:29 UTC (permalink / raw)
  To: intel-gfx; +Cc: Daniel Vetter, Matthew Auld

We need dmabuf specific pread() callback utilizing dma-buf API,
otherwise GEM_PREAD IOCTL will no longer work with dma-buf backed
(i.e., PRIME imported) objects on hardware with no mappable aperture.

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 55 ++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
index 93eea1031c82..207dbf044296 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
@@ -248,6 +248,60 @@ static void i915_gem_object_put_pages_dmabuf(struct drm_i915_gem_object *obj,
 				 DMA_BIDIRECTIONAL);
 }
 
+static int i915_gem_object_pread_dmabuf(struct drm_i915_gem_object *obj,
+					const struct drm_i915_gem_pread *args)
+{
+	struct dma_buf *dmabuf = obj->base.import_attach->dmabuf;
+	void __user *user_data = u64_to_user_ptr(args->data_ptr);
+	struct file *file = dmabuf->file;
+	const struct file_operations *fop = file->f_op;
+	void __force *vaddr;
+	int ret;
+
+	if (fop->read) {
+		loff_t offset = args->offset;
+
+		/*
+		 * fop->read() is supposed to call dma_buf_begin_cpu_access()
+		 * if O_SYNC flag is set, avoid calling it twice
+		 */
+		if (!(file->f_flags & O_SYNC)) {
+			ret = dma_buf_begin_cpu_access(dmabuf, DMA_FROM_DEVICE);
+			if (ret)
+				return ret;
+		}
+
+		ret = fop->read(file, user_data, args->size, &offset);
+
+		if (!(file->f_flags & O_SYNC))
+			dma_buf_end_cpu_access(dmabuf, DMA_FROM_DEVICE);
+
+		if (!ret)
+			return 0;
+	}
+
+	/* dma-buf file .read() not supported or failed, try dma_buf_vmap() */
+	ret = dma_buf_begin_cpu_access(dmabuf, DMA_FROM_DEVICE);
+	if (ret)
+		return ret;
+
+	vaddr = dma_buf_vmap(dmabuf);
+	if (!vaddr)
+		goto out_err;
+
+	ret = copy_to_user(user_data, vaddr + args->offset, args->size);
+	dma_buf_vunmap(dmabuf, vaddr);
+	if (!ret)
+		goto out_end;
+
+out_err:
+	/* fall back to GTT mapping */
+	ret = -ENODEV;
+out_end:
+	dma_buf_end_cpu_access(dmabuf, DMA_FROM_DEVICE);
+	return ret;
+}
+
 static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
 					 const struct drm_i915_gem_pwrite *args)
 {
@@ -305,6 +359,7 @@ static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
 static const struct drm_i915_gem_object_ops i915_gem_object_dmabuf_ops = {
 	.get_pages = i915_gem_object_get_pages_dmabuf,
 	.put_pages = i915_gem_object_put_pages_dmabuf,
+	.pread = i915_gem_object_pread_dmabuf,
 	.pwrite = i915_gem_object_pwrite_dmabuf,
 };
 
-- 
2.21.0

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

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* ✓ Fi.CI.BAT: success for series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback
  2019-10-31  8:29 [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback Janusz Krzysztofik
                   ` (2 preceding siblings ...)
  2019-10-31  8:29 ` [RESEND PATCH 3/3] drm/i915/dmabuf: Implement pread() callback Janusz Krzysztofik
@ 2019-10-31  9:14 ` Patchwork
  2019-10-31  9:14   ` [Intel-gfx] " Patchwork
  2019-11-01  9:09 ` ✓ Fi.CI.IGT: " Patchwork
  2019-11-05 14:27 ` [RESEND PATCH 1/3] " Daniel Vetter
  5 siblings, 1 reply; 16+ messages in thread
From: Patchwork @ 2019-10-31  9:14 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: intel-gfx

== Series Details ==

Series: series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback
URL   : https://patchwork.freedesktop.org/series/68806/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7228 -> Patchwork_15081
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/index.html

Known issues
------------

  Here are the changes found in Patchwork_15081 that come from known issues:

### IGT changes ###

#### Possible fixes ####

  * igt@gem_ctx_create@basic-files:
    - fi-icl-u3:          [INCOMPLETE][1] ([fdo#107713] / [fdo#109100]) -> [PASS][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/fi-icl-u3/igt@gem_ctx_create@basic-files.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/fi-icl-u3/igt@gem_ctx_create@basic-files.html

  * igt@i915_selftest@live_blt:
    - fi-bsw-n3050:       [DMESG-FAIL][3] ([fdo#112176]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/fi-bsw-n3050/igt@i915_selftest@live_blt.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/fi-bsw-n3050/igt@i915_selftest@live_blt.html

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-kbl-7500u:       [FAIL][5] ([fdo#109483]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html

  
#### Warnings ####

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][7] ([fdo#111045] / [fdo#111096]) -> [FAIL][8] ([fdo#111407])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
  [fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [fdo#112176]: https://bugs.freedesktop.org/show_bug.cgi?id=112176


Participating hosts (50 -> 43)
------------------------------

  Additional (1): fi-kbl-soraka 
  Missing    (8): fi-ilk-m540 fi-tgl-u fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7228 -> Patchwork_15081

  CI-20190529: 20190529
  CI_DRM_7228: 5efc505498d2612451f6230a6347f4e0e1960e50 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5253: d46ccb32cf693e8d8253543e9a4fbe5eaef4aa41 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15081: 6045b332a12912a77a110e78992842119558e3a0 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

6045b332a129 drm/i915/dmabuf: Implement pread() callback
80dfe928529f drm/i915: Add vfunc for pread
634b3a3d0ba1 drm/i915/dmabuf: Implement pwrite() callback

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback
  2019-10-31  9:14 ` ✓ Fi.CI.BAT: success for series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback Patchwork
@ 2019-10-31  9:14   ` Patchwork
  0 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2019-10-31  9:14 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: intel-gfx

== Series Details ==

Series: series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback
URL   : https://patchwork.freedesktop.org/series/68806/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7228 -> Patchwork_15081
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/index.html

Known issues
------------

  Here are the changes found in Patchwork_15081 that come from known issues:

### IGT changes ###

#### Possible fixes ####

  * igt@gem_ctx_create@basic-files:
    - fi-icl-u3:          [INCOMPLETE][1] ([fdo#107713] / [fdo#109100]) -> [PASS][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/fi-icl-u3/igt@gem_ctx_create@basic-files.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/fi-icl-u3/igt@gem_ctx_create@basic-files.html

  * igt@i915_selftest@live_blt:
    - fi-bsw-n3050:       [DMESG-FAIL][3] ([fdo#112176]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/fi-bsw-n3050/igt@i915_selftest@live_blt.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/fi-bsw-n3050/igt@i915_selftest@live_blt.html

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-kbl-7500u:       [FAIL][5] ([fdo#109483]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html

  
#### Warnings ####

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][7] ([fdo#111045] / [fdo#111096]) -> [FAIL][8] ([fdo#111407])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
  [fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [fdo#112176]: https://bugs.freedesktop.org/show_bug.cgi?id=112176


Participating hosts (50 -> 43)
------------------------------

  Additional (1): fi-kbl-soraka 
  Missing    (8): fi-ilk-m540 fi-tgl-u fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7228 -> Patchwork_15081

  CI-20190529: 20190529
  CI_DRM_7228: 5efc505498d2612451f6230a6347f4e0e1960e50 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5253: d46ccb32cf693e8d8253543e9a4fbe5eaef4aa41 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15081: 6045b332a12912a77a110e78992842119558e3a0 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

6045b332a129 drm/i915/dmabuf: Implement pread() callback
80dfe928529f drm/i915: Add vfunc for pread
634b3a3d0ba1 drm/i915/dmabuf: Implement pwrite() callback

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 16+ messages in thread

* ✓ Fi.CI.IGT: success for series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback
  2019-10-31  8:29 [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback Janusz Krzysztofik
                   ` (3 preceding siblings ...)
  2019-10-31  9:14 ` ✓ Fi.CI.BAT: success for series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback Patchwork
@ 2019-11-01  9:09 ` Patchwork
  2019-11-01  9:09   ` [Intel-gfx] " Patchwork
  2019-11-05 14:27 ` [RESEND PATCH 1/3] " Daniel Vetter
  5 siblings, 1 reply; 16+ messages in thread
From: Patchwork @ 2019-11-01  9:09 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: intel-gfx

== Series Details ==

Series: series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback
URL   : https://patchwork.freedesktop.org/series/68806/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7228_full -> Patchwork_15081_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Known issues
------------

  Here are the changes found in Patchwork_15081_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@vcs1-s3:
    - shard-iclb:         [PASS][1] -> [SKIP][2] ([fdo#109276] / [fdo#112080]) +1 similar issue
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb2/igt@gem_ctx_isolation@vcs1-s3.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb3/igt@gem_ctx_isolation@vcs1-s3.html

  * igt@gem_eio@unwedge-stress:
    - shard-snb:          [PASS][3] -> [FAIL][4] ([fdo#109661])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-snb2/igt@gem_eio@unwedge-stress.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-snb2/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_parallel@vcs1-fds:
    - shard-iclb:         [PASS][5] -> [SKIP][6] ([fdo#112080]) +11 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb4/igt@gem_exec_parallel@vcs1-fds.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb5/igt@gem_exec_parallel@vcs1-fds.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [PASS][7] -> [SKIP][8] ([fdo#112146]) +7 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb6/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb4/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_linear_blits@interruptible:
    - shard-apl:          [PASS][9] -> [INCOMPLETE][10] ([fdo#103927] / [fdo#112067])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-apl2/igt@gem_linear_blits@interruptible.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-apl4/igt@gem_linear_blits@interruptible.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing:
    - shard-snb:          [PASS][11] -> [TIMEOUT][12] ([fdo#112068 ])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-snb7/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-snb2/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-snb:          [PASS][13] -> [DMESG-WARN][14] ([fdo#111870]) +2 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-snb5/igt@gem_userptr_blits@dmabuf-sync.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-snb7/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@sync-unmap:
    - shard-hsw:          [PASS][15] -> [DMESG-WARN][16] ([fdo#111870])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-hsw1/igt@gem_userptr_blits@sync-unmap.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-hsw2/igt@gem_userptr_blits@sync-unmap.html

  * igt@i915_pm_rpm@modeset-stress-extra-wait:
    - shard-glk:          [PASS][17] -> [DMESG-WARN][18] ([fdo#105763] / [fdo#106538])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-glk4/igt@i915_pm_rpm@modeset-stress-extra-wait.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-glk8/igt@i915_pm_rpm@modeset-stress-extra-wait.html

  * igt@kms_color@pipe-b-ctm-0-5:
    - shard-skl:          [PASS][19] -> [DMESG-WARN][20] ([fdo#106107])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl2/igt@kms_color@pipe-b-ctm-0-5.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl7/igt@kms_color@pipe-b-ctm-0-5.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-kbl:          [PASS][21] -> [DMESG-WARN][22] ([fdo#108566]) +2 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-kbl2/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-skl:          [PASS][23] -> [FAIL][24] ([fdo#105363])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl1/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@plain-flip-ts-check:
    - shard-skl:          [PASS][25] -> [FAIL][26] ([fdo#100368])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl1/igt@kms_flip@plain-flip-ts-check.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl6/igt@kms_flip@plain-flip-ts-check.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt:
    - shard-iclb:         [PASS][27] -> [FAIL][28] ([fdo#103167]) +5 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-skl:          [PASS][29] -> [INCOMPLETE][30] ([fdo#104108]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl10/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_plane@plane-position-covered-pipe-a-planes:
    - shard-snb:          [PASS][31] -> [SKIP][32] ([fdo#109271]) +2 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-snb4/igt@kms_plane@plane-position-covered-pipe-a-planes.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-snb4/igt@kms_plane@plane-position-covered-pipe-a-planes.html

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
    - shard-skl:          [PASS][33] -> [FAIL][34] ([fdo#108145] / [fdo#110403])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl5/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl2/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html

  * igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format:
    - shard-iclb:         [PASS][35] -> [INCOMPLETE][36] ([fdo#107713])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb2/igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb7/igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [PASS][37] -> [SKIP][38] ([fdo#109441])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb1/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@prime_busy@hang-bsd2:
    - shard-iclb:         [PASS][39] -> [SKIP][40] ([fdo#109276]) +13 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb1/igt@prime_busy@hang-bsd2.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb7/igt@prime_busy@hang-bsd2.html

  
#### Possible fixes ####

  * igt@gem_busy@busy-vcs1:
    - shard-iclb:         [SKIP][41] ([fdo#112080]) -> [PASS][42] +17 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb8/igt@gem_busy@busy-vcs1.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb2/igt@gem_busy@busy-vcs1.html

  * igt@gem_ctx_isolation@vcs1-none:
    - shard-iclb:         [SKIP][43] ([fdo#109276] / [fdo#112080]) -> [PASS][44] +3 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb8/igt@gem_ctx_isolation@vcs1-none.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb2/igt@gem_ctx_isolation@vcs1-none.html

  * {igt@gem_ctx_persistence@bcs0-queued}:
    - {shard-tglb}:       [FAIL][45] ([fdo#112180]) -> [PASS][46] +2 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb8/igt@gem_ctx_persistence@bcs0-queued.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb2/igt@gem_ctx_persistence@bcs0-queued.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [SKIP][47] ([fdo#110854]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb5/igt@gem_exec_balancer@smoke.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb2/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_schedule@reorder-wide-blt:
    - {shard-tglb}:       [INCOMPLETE][49] ([fdo#111747]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb2/igt@gem_exec_schedule@reorder-wide-blt.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb2/igt@gem_exec_schedule@reorder-wide-blt.html

  * igt@gem_exec_schedule@wide-bsd:
    - shard-iclb:         [SKIP][51] ([fdo#112146]) -> [PASS][52] +3 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb1/igt@gem_exec_schedule@wide-bsd.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb7/igt@gem_exec_schedule@wide-bsd.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy-gup:
    - shard-hsw:          [DMESG-WARN][53] ([fdo#111870]) -> [PASS][54] +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html

  * igt@i915_suspend@sysfs-reader:
    - shard-apl:          [DMESG-WARN][55] ([fdo#108566]) -> [PASS][56] +4 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-apl4/igt@i915_suspend@sysfs-reader.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-apl7/igt@i915_suspend@sysfs-reader.html

  * igt@kms_color@pipe-b-ctm-0-75:
    - shard-skl:          [DMESG-WARN][57] ([fdo#106107]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl7/igt@kms_color@pipe-b-ctm-0-75.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl10/igt@kms_color@pipe-b-ctm-0-75.html

  * igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen:
    - shard-hsw:          [INCOMPLETE][59] ([fdo#103540]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-hsw7/igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-hsw6/igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen.html

  * igt@kms_cursor_edge_walk@pipe-b-64x64-bottom-edge:
    - {shard-tglb}:       [INCOMPLETE][61] ([fdo#112035 ]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb8/igt@kms_cursor_edge_walk@pipe-b-64x64-bottom-edge.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb3/igt@kms_cursor_edge_walk@pipe-b-64x64-bottom-edge.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-skl:          [INCOMPLETE][63] ([fdo#109507]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl4/igt@kms_flip@flip-vs-suspend.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl9/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [DMESG-WARN][65] ([fdo#108566]) -> [PASS][66] +7 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite:
    - shard-iclb:         [FAIL][67] ([fdo#103167]) -> [PASS][68] +2 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary:
    - {shard-tglb}:       [FAIL][69] ([fdo#103167]) -> [PASS][70] +2 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb4/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
    - {shard-tglb}:       [DMESG-WARN][71] ([fdo#111600]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb1/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb8/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         [SKIP][73] ([fdo#109441]) -> [PASS][74] +2 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb8/igt@kms_psr@psr2_cursor_mmap_cpu.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
    - shard-apl:          [INCOMPLETE][75] ([fdo#103927]) -> [PASS][76] +1 similar issue
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-apl1/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-apl2/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html

  * igt@kms_setmode@basic:
    - shard-kbl:          [FAIL][77] ([fdo#99912]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-kbl1/igt@kms_setmode@basic.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-kbl6/igt@kms_setmode@basic.html

  * igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend:
    - {shard-tglb}:       [INCOMPLETE][79] ([fdo#111850]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb2/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb1/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [SKIP][81] ([fdo#109276]) -> [PASS][82] +24 similar issues
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb5/igt@prime_vgem@fence-wait-bsd2.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb1/igt@prime_vgem@fence-wait-bsd2.html

  
#### Warnings ####

  * igt@gem_mocs_settings@mocs-isolation-bsd2:
    - shard-iclb:         [FAIL][83] ([fdo#111330]) -> [SKIP][84] ([fdo#109276])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb4/igt@gem_mocs_settings@mocs-isolation-bsd2.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb6/igt@gem_mocs_settings@mocs-isolation-bsd2.html

  * igt@gem_mocs_settings@mocs-reset-bsd2:
    - shard-iclb:         [SKIP][85] ([fdo#109276]) -> [FAIL][86] ([fdo#111330])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb6/igt@gem_mocs_settings@mocs-reset-bsd2.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb4/igt@gem_mocs_settings@mocs-reset-bsd2.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [SKIP][87] ([fdo#109349]) -> [DMESG-WARN][88] ([fdo#107724])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb5/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-kbl:          [INCOMPLETE][89] ([fdo#103665]) -> [DMESG-WARN][90] ([fdo#108566])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-kbl7/igt@kms_flip@flip-vs-suspend.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-kbl2/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
    - shard-apl:          [INCOMPLETE][91] ([fdo#103927]) -> [DMESG-WARN][92] ([fdo#108566])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-apl3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-apl6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo# 112000 ]: https://bugs.freedesktop.org/show_bug.cgi?id= 112000 
  [fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [fdo#106538]: https://bugs.freedesktop.org/show_bug.cgi?id=106538
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109507]: https://bugs.freedesktop.org/show_bug.cgi?id=109507
  [fdo#109661]: https://bugs.freedesktop.org/show_bug.cgi?id=109661
  [fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111329]: https://bugs.freedesktop.org/show_bug.cgi?id=111329
  [fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
  [fdo#111600]: https://bugs.freedesktop.org/show_bug.cgi?id=111600
  [fdo#111646]: https://bugs.freedesktop.org/show_bug.cgi?id=111646
  [fdo#111671]: https://bugs.freedesktop.org/show_bug.cgi?id=111671
  [fdo#111703]: https://bugs.freedesktop.org/show_bug.cgi?id=111703
  [fdo#111747]: https://bugs.freedesktop.org/show_bug.cgi?id=111747
  [fdo#111781]: https://bugs.freedesktop.org/show_bug.cgi?id=111781
  [fdo#111832]: https://bugs.freedesktop.org/show_bug.cgi?id=111832
  [fdo#111850]: https://bugs.freedesktop.org/show_bug.cgi?id=111850
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#111884]: h

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback
  2019-11-01  9:09 ` ✓ Fi.CI.IGT: " Patchwork
@ 2019-11-01  9:09   ` Patchwork
  0 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2019-11-01  9:09 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: intel-gfx

== Series Details ==

Series: series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback
URL   : https://patchwork.freedesktop.org/series/68806/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7228_full -> Patchwork_15081_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Known issues
------------

  Here are the changes found in Patchwork_15081_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@vcs1-s3:
    - shard-iclb:         [PASS][1] -> [SKIP][2] ([fdo#109276] / [fdo#112080]) +1 similar issue
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb2/igt@gem_ctx_isolation@vcs1-s3.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb3/igt@gem_ctx_isolation@vcs1-s3.html

  * igt@gem_eio@unwedge-stress:
    - shard-snb:          [PASS][3] -> [FAIL][4] ([fdo#109661])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-snb2/igt@gem_eio@unwedge-stress.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-snb2/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_parallel@vcs1-fds:
    - shard-iclb:         [PASS][5] -> [SKIP][6] ([fdo#112080]) +11 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb4/igt@gem_exec_parallel@vcs1-fds.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb5/igt@gem_exec_parallel@vcs1-fds.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [PASS][7] -> [SKIP][8] ([fdo#112146]) +7 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb6/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb4/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_linear_blits@interruptible:
    - shard-apl:          [PASS][9] -> [INCOMPLETE][10] ([fdo#103927] / [fdo#112067])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-apl2/igt@gem_linear_blits@interruptible.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-apl4/igt@gem_linear_blits@interruptible.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing:
    - shard-snb:          [PASS][11] -> [TIMEOUT][12] ([fdo#112068 ])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-snb7/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-snb2/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-snb:          [PASS][13] -> [DMESG-WARN][14] ([fdo#111870]) +2 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-snb5/igt@gem_userptr_blits@dmabuf-sync.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-snb7/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@sync-unmap:
    - shard-hsw:          [PASS][15] -> [DMESG-WARN][16] ([fdo#111870])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-hsw1/igt@gem_userptr_blits@sync-unmap.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-hsw2/igt@gem_userptr_blits@sync-unmap.html

  * igt@i915_pm_rpm@modeset-stress-extra-wait:
    - shard-glk:          [PASS][17] -> [DMESG-WARN][18] ([fdo#105763] / [fdo#106538])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-glk4/igt@i915_pm_rpm@modeset-stress-extra-wait.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-glk8/igt@i915_pm_rpm@modeset-stress-extra-wait.html

  * igt@kms_color@pipe-b-ctm-0-5:
    - shard-skl:          [PASS][19] -> [DMESG-WARN][20] ([fdo#106107])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl2/igt@kms_color@pipe-b-ctm-0-5.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl7/igt@kms_color@pipe-b-ctm-0-5.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-kbl:          [PASS][21] -> [DMESG-WARN][22] ([fdo#108566]) +2 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-kbl2/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-skl:          [PASS][23] -> [FAIL][24] ([fdo#105363])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl1/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@plain-flip-ts-check:
    - shard-skl:          [PASS][25] -> [FAIL][26] ([fdo#100368])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl1/igt@kms_flip@plain-flip-ts-check.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl6/igt@kms_flip@plain-flip-ts-check.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt:
    - shard-iclb:         [PASS][27] -> [FAIL][28] ([fdo#103167]) +5 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-skl:          [PASS][29] -> [INCOMPLETE][30] ([fdo#104108]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl10/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_plane@plane-position-covered-pipe-a-planes:
    - shard-snb:          [PASS][31] -> [SKIP][32] ([fdo#109271]) +2 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-snb4/igt@kms_plane@plane-position-covered-pipe-a-planes.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-snb4/igt@kms_plane@plane-position-covered-pipe-a-planes.html

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
    - shard-skl:          [PASS][33] -> [FAIL][34] ([fdo#108145] / [fdo#110403])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl5/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl2/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html

  * igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format:
    - shard-iclb:         [PASS][35] -> [INCOMPLETE][36] ([fdo#107713])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb2/igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb7/igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [PASS][37] -> [SKIP][38] ([fdo#109441])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb1/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@prime_busy@hang-bsd2:
    - shard-iclb:         [PASS][39] -> [SKIP][40] ([fdo#109276]) +13 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb1/igt@prime_busy@hang-bsd2.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb7/igt@prime_busy@hang-bsd2.html

  
#### Possible fixes ####

  * igt@gem_busy@busy-vcs1:
    - shard-iclb:         [SKIP][41] ([fdo#112080]) -> [PASS][42] +17 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb8/igt@gem_busy@busy-vcs1.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb2/igt@gem_busy@busy-vcs1.html

  * igt@gem_ctx_isolation@vcs1-none:
    - shard-iclb:         [SKIP][43] ([fdo#109276] / [fdo#112080]) -> [PASS][44] +3 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb8/igt@gem_ctx_isolation@vcs1-none.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb2/igt@gem_ctx_isolation@vcs1-none.html

  * {igt@gem_ctx_persistence@bcs0-queued}:
    - {shard-tglb}:       [FAIL][45] ([fdo#112180]) -> [PASS][46] +2 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb8/igt@gem_ctx_persistence@bcs0-queued.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb2/igt@gem_ctx_persistence@bcs0-queued.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [SKIP][47] ([fdo#110854]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb5/igt@gem_exec_balancer@smoke.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb2/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_schedule@reorder-wide-blt:
    - {shard-tglb}:       [INCOMPLETE][49] ([fdo#111747]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb2/igt@gem_exec_schedule@reorder-wide-blt.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb2/igt@gem_exec_schedule@reorder-wide-blt.html

  * igt@gem_exec_schedule@wide-bsd:
    - shard-iclb:         [SKIP][51] ([fdo#112146]) -> [PASS][52] +3 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb1/igt@gem_exec_schedule@wide-bsd.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb7/igt@gem_exec_schedule@wide-bsd.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy-gup:
    - shard-hsw:          [DMESG-WARN][53] ([fdo#111870]) -> [PASS][54] +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html

  * igt@i915_suspend@sysfs-reader:
    - shard-apl:          [DMESG-WARN][55] ([fdo#108566]) -> [PASS][56] +4 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-apl4/igt@i915_suspend@sysfs-reader.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-apl7/igt@i915_suspend@sysfs-reader.html

  * igt@kms_color@pipe-b-ctm-0-75:
    - shard-skl:          [DMESG-WARN][57] ([fdo#106107]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl7/igt@kms_color@pipe-b-ctm-0-75.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl10/igt@kms_color@pipe-b-ctm-0-75.html

  * igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen:
    - shard-hsw:          [INCOMPLETE][59] ([fdo#103540]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-hsw7/igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-hsw6/igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen.html

  * igt@kms_cursor_edge_walk@pipe-b-64x64-bottom-edge:
    - {shard-tglb}:       [INCOMPLETE][61] ([fdo#112035 ]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb8/igt@kms_cursor_edge_walk@pipe-b-64x64-bottom-edge.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb3/igt@kms_cursor_edge_walk@pipe-b-64x64-bottom-edge.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-skl:          [INCOMPLETE][63] ([fdo#109507]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-skl4/igt@kms_flip@flip-vs-suspend.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-skl9/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [DMESG-WARN][65] ([fdo#108566]) -> [PASS][66] +7 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite:
    - shard-iclb:         [FAIL][67] ([fdo#103167]) -> [PASS][68] +2 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary:
    - {shard-tglb}:       [FAIL][69] ([fdo#103167]) -> [PASS][70] +2 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb4/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
    - {shard-tglb}:       [DMESG-WARN][71] ([fdo#111600]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb1/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb8/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         [SKIP][73] ([fdo#109441]) -> [PASS][74] +2 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb8/igt@kms_psr@psr2_cursor_mmap_cpu.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
    - shard-apl:          [INCOMPLETE][75] ([fdo#103927]) -> [PASS][76] +1 similar issue
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-apl1/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-apl2/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html

  * igt@kms_setmode@basic:
    - shard-kbl:          [FAIL][77] ([fdo#99912]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-kbl1/igt@kms_setmode@basic.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-kbl6/igt@kms_setmode@basic.html

  * igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend:
    - {shard-tglb}:       [INCOMPLETE][79] ([fdo#111850]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-tglb2/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-tglb1/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [SKIP][81] ([fdo#109276]) -> [PASS][82] +24 similar issues
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb5/igt@prime_vgem@fence-wait-bsd2.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb1/igt@prime_vgem@fence-wait-bsd2.html

  
#### Warnings ####

  * igt@gem_mocs_settings@mocs-isolation-bsd2:
    - shard-iclb:         [FAIL][83] ([fdo#111330]) -> [SKIP][84] ([fdo#109276])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb4/igt@gem_mocs_settings@mocs-isolation-bsd2.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb6/igt@gem_mocs_settings@mocs-isolation-bsd2.html

  * igt@gem_mocs_settings@mocs-reset-bsd2:
    - shard-iclb:         [SKIP][85] ([fdo#109276]) -> [FAIL][86] ([fdo#111330])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb6/igt@gem_mocs_settings@mocs-reset-bsd2.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb4/igt@gem_mocs_settings@mocs-reset-bsd2.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [SKIP][87] ([fdo#109349]) -> [DMESG-WARN][88] ([fdo#107724])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-iclb5/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-kbl:          [INCOMPLETE][89] ([fdo#103665]) -> [DMESG-WARN][90] ([fdo#108566])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-kbl7/igt@kms_flip@flip-vs-suspend.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-kbl2/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
    - shard-apl:          [INCOMPLETE][91] ([fdo#103927]) -> [DMESG-WARN][92] ([fdo#108566])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7228/shard-apl3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/shard-apl6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo# 112000 ]: https://bugs.freedesktop.org/show_bug.cgi?id= 112000 
  [fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [fdo#106538]: https://bugs.freedesktop.org/show_bug.cgi?id=106538
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109507]: https://bugs.freedesktop.org/show_bug.cgi?id=109507
  [fdo#109661]: https://bugs.freedesktop.org/show_bug.cgi?id=109661
  [fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111329]: https://bugs.freedesktop.org/show_bug.cgi?id=111329
  [fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
  [fdo#111600]: https://bugs.freedesktop.org/show_bug.cgi?id=111600
  [fdo#111646]: https://bugs.freedesktop.org/show_bug.cgi?id=111646
  [fdo#111671]: https://bugs.freedesktop.org/show_bug.cgi?id=111671
  [fdo#111703]: https://bugs.freedesktop.org/show_bug.cgi?id=111703
  [fdo#111747]: https://bugs.freedesktop.org/show_bug.cgi?id=111747
  [fdo#111781]: https://bugs.freedesktop.org/show_bug.cgi?id=111781
  [fdo#111832]: https://bugs.freedesktop.org/show_bug.cgi?id=111832
  [fdo#111850]: https://bugs.freedesktop.org/show_bug.cgi?id=111850
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#111884]: h

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15081/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback
  2019-10-31  8:29 [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback Janusz Krzysztofik
                   ` (4 preceding siblings ...)
  2019-11-01  9:09 ` ✓ Fi.CI.IGT: " Patchwork
@ 2019-11-05 14:27 ` Daniel Vetter
  2019-11-05 14:27   ` [Intel-gfx] " Daniel Vetter
                     ` (2 more replies)
  5 siblings, 3 replies; 16+ messages in thread
From: Daniel Vetter @ 2019-11-05 14:27 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: Daniel Vetter, intel-gfx, Matthew Auld

On Thu, Oct 31, 2019 at 09:29:56AM +0100, Janusz Krzysztofik wrote:
> We need dmabuf specific pwrite() callback utilizing dma-buf API,
> otherwise GEM_PWRITE IOCTL will no longer work with dma-buf backed
> (i.e., PRIME imported) objects on hardware with no mappable aperture.
> 
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>

Do we have userspace for this (aside from igts)? Specifically for the
gen12 + dma-buf import + pwrite/read/whatever case you're fixing in this
series here.
-Daniel

> ---
>  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 55 ++++++++++++++++++++++
>  1 file changed, 55 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> index 96ce95c8ac5a..93eea1031c82 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> @@ -248,9 +248,64 @@ static void i915_gem_object_put_pages_dmabuf(struct drm_i915_gem_object *obj,
>  				 DMA_BIDIRECTIONAL);
>  }
>  
> +static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
> +					 const struct drm_i915_gem_pwrite *args)
> +{
> +	struct dma_buf *dmabuf = obj->base.import_attach->dmabuf;
> +	void __user *user_data = u64_to_user_ptr(args->data_ptr);
> +	struct file *file = dmabuf->file;
> +	const struct file_operations *fop = file->f_op;
> +	void __force *vaddr;
> +	int ret;
> +
> +	if (fop->write) {
> +		loff_t offset = args->offset;
> +
> +		/*
> +		 * fop->write() is supposed to call dma_buf_begin_cpu_access()
> +		 * if O_SYNC flag is set, avoid calling it twice
> +		 */
> +		if (!(file->f_flags & O_SYNC)) {
> +			ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
> +			if (ret)
> +				return ret;
> +		}
> +
> +		ret = fop->write(file, user_data, args->size, &offset);
> +
> +		if (!(file->f_flags & O_SYNC))
> +			dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
> +
> +		if (!ret)
> +			return 0;
> +	}
> +
> +	/* dma-buf file .write() not supported or failed, try dma_buf_vmap() */
> +	ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
> +	if (ret)
> +		return ret;
> +
> +	vaddr = dma_buf_vmap(dmabuf);
> +	if (!vaddr)
> +		goto out_err;
> +
> +	ret = copy_from_user(vaddr + args->offset, user_data, args->size);
> +	dma_buf_vunmap(dmabuf, vaddr);
> +	if (!ret)
> +		goto out_end;
> +
> +out_err:
> +	/* fall back to GTT mapping */
> +	ret = -ENODEV;
> +out_end:
> +	dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
> +	return ret;
> +}
> +
>  static const struct drm_i915_gem_object_ops i915_gem_object_dmabuf_ops = {
>  	.get_pages = i915_gem_object_get_pages_dmabuf,
>  	.put_pages = i915_gem_object_put_pages_dmabuf,
> +	.pwrite = i915_gem_object_pwrite_dmabuf,
>  };
>  
>  struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev,
> -- 
> 2.21.0
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Intel-gfx] [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback
  2019-11-05 14:27 ` [RESEND PATCH 1/3] " Daniel Vetter
@ 2019-11-05 14:27   ` Daniel Vetter
  2019-11-05 15:08   ` Janusz Krzysztofik
  2019-11-08 17:20   ` Janusz Krzysztofik
  2 siblings, 0 replies; 16+ messages in thread
From: Daniel Vetter @ 2019-11-05 14:27 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: Daniel Vetter, intel-gfx, Matthew Auld

On Thu, Oct 31, 2019 at 09:29:56AM +0100, Janusz Krzysztofik wrote:
> We need dmabuf specific pwrite() callback utilizing dma-buf API,
> otherwise GEM_PWRITE IOCTL will no longer work with dma-buf backed
> (i.e., PRIME imported) objects on hardware with no mappable aperture.
> 
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>

Do we have userspace for this (aside from igts)? Specifically for the
gen12 + dma-buf import + pwrite/read/whatever case you're fixing in this
series here.
-Daniel

> ---
>  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 55 ++++++++++++++++++++++
>  1 file changed, 55 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> index 96ce95c8ac5a..93eea1031c82 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> @@ -248,9 +248,64 @@ static void i915_gem_object_put_pages_dmabuf(struct drm_i915_gem_object *obj,
>  				 DMA_BIDIRECTIONAL);
>  }
>  
> +static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
> +					 const struct drm_i915_gem_pwrite *args)
> +{
> +	struct dma_buf *dmabuf = obj->base.import_attach->dmabuf;
> +	void __user *user_data = u64_to_user_ptr(args->data_ptr);
> +	struct file *file = dmabuf->file;
> +	const struct file_operations *fop = file->f_op;
> +	void __force *vaddr;
> +	int ret;
> +
> +	if (fop->write) {
> +		loff_t offset = args->offset;
> +
> +		/*
> +		 * fop->write() is supposed to call dma_buf_begin_cpu_access()
> +		 * if O_SYNC flag is set, avoid calling it twice
> +		 */
> +		if (!(file->f_flags & O_SYNC)) {
> +			ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
> +			if (ret)
> +				return ret;
> +		}
> +
> +		ret = fop->write(file, user_data, args->size, &offset);
> +
> +		if (!(file->f_flags & O_SYNC))
> +			dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
> +
> +		if (!ret)
> +			return 0;
> +	}
> +
> +	/* dma-buf file .write() not supported or failed, try dma_buf_vmap() */
> +	ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
> +	if (ret)
> +		return ret;
> +
> +	vaddr = dma_buf_vmap(dmabuf);
> +	if (!vaddr)
> +		goto out_err;
> +
> +	ret = copy_from_user(vaddr + args->offset, user_data, args->size);
> +	dma_buf_vunmap(dmabuf, vaddr);
> +	if (!ret)
> +		goto out_end;
> +
> +out_err:
> +	/* fall back to GTT mapping */
> +	ret = -ENODEV;
> +out_end:
> +	dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
> +	return ret;
> +}
> +
>  static const struct drm_i915_gem_object_ops i915_gem_object_dmabuf_ops = {
>  	.get_pages = i915_gem_object_get_pages_dmabuf,
>  	.put_pages = i915_gem_object_put_pages_dmabuf,
> +	.pwrite = i915_gem_object_pwrite_dmabuf,
>  };
>  
>  struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev,
> -- 
> 2.21.0
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback
  2019-11-05 14:27 ` [RESEND PATCH 1/3] " Daniel Vetter
  2019-11-05 14:27   ` [Intel-gfx] " Daniel Vetter
@ 2019-11-05 15:08   ` Janusz Krzysztofik
  2019-11-05 15:08     ` [Intel-gfx] " Janusz Krzysztofik
  2019-11-08 17:20   ` Janusz Krzysztofik
  2 siblings, 1 reply; 16+ messages in thread
From: Janusz Krzysztofik @ 2019-11-05 15:08 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Daniel Vetter, intel-gfx, Matthew Auld

Hi Daniel,

On Tuesday, November 5, 2019 3:27:55 PM CET Daniel Vetter wrote:
> On Thu, Oct 31, 2019 at 09:29:56AM +0100, Janusz Krzysztofik wrote:
> > We need dmabuf specific pwrite() callback utilizing dma-buf API,
> > otherwise GEM_PWRITE IOCTL will no longer work with dma-buf backed
> > (i.e., PRIME imported) objects on hardware with no mappable aperture.
> > 
> > Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> > Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> 
> Do we have userspace for this (aside from igts)? Specifically for the
> gen12 + dma-buf import + pwrite/read/whatever case you're fixing in this
> series here.

I don't know the answer, sorry, I can only tell that prime_vgem IGT test uses 
gem_read()/gem_write(), which call I915_GEM_PREAD/I915_GEM_PWRITE DRM IOCTLs 
respectively, on PRIME imported vgem objects.

Thanks,
Janusz


> -Daniel
> 
> > ---
> >  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 55 ++++++++++++++++++++++
> >  1 file changed, 55 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> > index 96ce95c8ac5a..93eea1031c82 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> > @@ -248,9 +248,64 @@ static void i915_gem_object_put_pages_dmabuf(struct drm_i915_gem_object *obj,
> >  				 DMA_BIDIRECTIONAL);
> >  }
> >  
> > +static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
> > +					 const struct drm_i915_gem_pwrite *args)
> > +{
> > +	struct dma_buf *dmabuf = obj->base.import_attach->dmabuf;
> > +	void __user *user_data = u64_to_user_ptr(args->data_ptr);
> > +	struct file *file = dmabuf->file;
> > +	const struct file_operations *fop = file->f_op;
> > +	void __force *vaddr;
> > +	int ret;
> > +
> > +	if (fop->write) {
> > +		loff_t offset = args->offset;
> > +
> > +		/*
> > +		 * fop->write() is supposed to call dma_buf_begin_cpu_access()
> > +		 * if O_SYNC flag is set, avoid calling it twice
> > +		 */
> > +		if (!(file->f_flags & O_SYNC)) {
> > +			ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +			if (ret)
> > +				return ret;
> > +		}
> > +
> > +		ret = fop->write(file, user_data, args->size, &offset);
> > +
> > +		if (!(file->f_flags & O_SYNC))
> > +			dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +
> > +		if (!ret)
> > +			return 0;
> > +	}
> > +
> > +	/* dma-buf file .write() not supported or failed, try dma_buf_vmap() */
> > +	ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +	if (ret)
> > +		return ret;
> > +
> > +	vaddr = dma_buf_vmap(dmabuf);
> > +	if (!vaddr)
> > +		goto out_err;
> > +
> > +	ret = copy_from_user(vaddr + args->offset, user_data, args->size);
> > +	dma_buf_vunmap(dmabuf, vaddr);
> > +	if (!ret)
> > +		goto out_end;
> > +
> > +out_err:
> > +	/* fall back to GTT mapping */
> > +	ret = -ENODEV;
> > +out_end:
> > +	dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +	return ret;
> > +}
> > +
> >  static const struct drm_i915_gem_object_ops i915_gem_object_dmabuf_ops = {
> >  	.get_pages = i915_gem_object_get_pages_dmabuf,
> >  	.put_pages = i915_gem_object_put_pages_dmabuf,
> > +	.pwrite = i915_gem_object_pwrite_dmabuf,
> >  };
> >  
> >  struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev,
> 
> 




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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Intel-gfx] [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback
  2019-11-05 15:08   ` Janusz Krzysztofik
@ 2019-11-05 15:08     ` Janusz Krzysztofik
  0 siblings, 0 replies; 16+ messages in thread
From: Janusz Krzysztofik @ 2019-11-05 15:08 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Daniel Vetter, intel-gfx, Matthew Auld

Hi Daniel,

On Tuesday, November 5, 2019 3:27:55 PM CET Daniel Vetter wrote:
> On Thu, Oct 31, 2019 at 09:29:56AM +0100, Janusz Krzysztofik wrote:
> > We need dmabuf specific pwrite() callback utilizing dma-buf API,
> > otherwise GEM_PWRITE IOCTL will no longer work with dma-buf backed
> > (i.e., PRIME imported) objects on hardware with no mappable aperture.
> > 
> > Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> > Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> 
> Do we have userspace for this (aside from igts)? Specifically for the
> gen12 + dma-buf import + pwrite/read/whatever case you're fixing in this
> series here.

I don't know the answer, sorry, I can only tell that prime_vgem IGT test uses 
gem_read()/gem_write(), which call I915_GEM_PREAD/I915_GEM_PWRITE DRM IOCTLs 
respectively, on PRIME imported vgem objects.

Thanks,
Janusz


> -Daniel
> 
> > ---
> >  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 55 ++++++++++++++++++++++
> >  1 file changed, 55 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> > index 96ce95c8ac5a..93eea1031c82 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> > @@ -248,9 +248,64 @@ static void i915_gem_object_put_pages_dmabuf(struct drm_i915_gem_object *obj,
> >  				 DMA_BIDIRECTIONAL);
> >  }
> >  
> > +static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
> > +					 const struct drm_i915_gem_pwrite *args)
> > +{
> > +	struct dma_buf *dmabuf = obj->base.import_attach->dmabuf;
> > +	void __user *user_data = u64_to_user_ptr(args->data_ptr);
> > +	struct file *file = dmabuf->file;
> > +	const struct file_operations *fop = file->f_op;
> > +	void __force *vaddr;
> > +	int ret;
> > +
> > +	if (fop->write) {
> > +		loff_t offset = args->offset;
> > +
> > +		/*
> > +		 * fop->write() is supposed to call dma_buf_begin_cpu_access()
> > +		 * if O_SYNC flag is set, avoid calling it twice
> > +		 */
> > +		if (!(file->f_flags & O_SYNC)) {
> > +			ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +			if (ret)
> > +				return ret;
> > +		}
> > +
> > +		ret = fop->write(file, user_data, args->size, &offset);
> > +
> > +		if (!(file->f_flags & O_SYNC))
> > +			dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +
> > +		if (!ret)
> > +			return 0;
> > +	}
> > +
> > +	/* dma-buf file .write() not supported or failed, try dma_buf_vmap() */
> > +	ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +	if (ret)
> > +		return ret;
> > +
> > +	vaddr = dma_buf_vmap(dmabuf);
> > +	if (!vaddr)
> > +		goto out_err;
> > +
> > +	ret = copy_from_user(vaddr + args->offset, user_data, args->size);
> > +	dma_buf_vunmap(dmabuf, vaddr);
> > +	if (!ret)
> > +		goto out_end;
> > +
> > +out_err:
> > +	/* fall back to GTT mapping */
> > +	ret = -ENODEV;
> > +out_end:
> > +	dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +	return ret;
> > +}
> > +
> >  static const struct drm_i915_gem_object_ops i915_gem_object_dmabuf_ops = {
> >  	.get_pages = i915_gem_object_get_pages_dmabuf,
> >  	.put_pages = i915_gem_object_put_pages_dmabuf,
> > +	.pwrite = i915_gem_object_pwrite_dmabuf,
> >  };
> >  
> >  struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev,
> 
> 




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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback
  2019-11-05 14:27 ` [RESEND PATCH 1/3] " Daniel Vetter
  2019-11-05 14:27   ` [Intel-gfx] " Daniel Vetter
  2019-11-05 15:08   ` Janusz Krzysztofik
@ 2019-11-08 17:20   ` Janusz Krzysztofik
  2019-11-08 17:20     ` [Intel-gfx] " Janusz Krzysztofik
  2 siblings, 1 reply; 16+ messages in thread
From: Janusz Krzysztofik @ 2019-11-08 17:20 UTC (permalink / raw)
  To: Joonas Lahtinen, Dave Airlie
  Cc: dri-devel, Daniel Vetter, intel-gfx, Matthew Auld

Hi,

On Tuesday, November 5, 2019 3:27:55 PM CET Daniel Vetter wrote:
> On Thu, Oct 31, 2019 at 09:29:56AM +0100, Janusz Krzysztofik wrote:
> > We need dmabuf specific pwrite() callback utilizing dma-buf API,
> > otherwise GEM_PWRITE IOCTL will no longer work with dma-buf backed
> > (i.e., PRIME imported) objects on hardware with no mappable aperture.
> > 
> > Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> > Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> 
> Do we have userspace for this (aside from igts)? Specifically for the
> gen12 + dma-buf import + pwrite/read/whatever case you're fixing in this
> series here.

I've discussed that on IRC with Daniel and Chris, it looks like 
I915_GEM_PREAD/PWRITE IOCTL support is provided on PRIME imported dma-buf 
objects mainly for completeness of the uAPI, useful for multi-device tests.  
There were conclusions we should ask Dave and Jonas for their position if that 
support should still be provided (and fixed for the no mappable aperture case) 
or maybe dropped as not used (and related (sub)tests also dropped).

Dave, Jonas, could you please give your comments?

Thanks,
Janusz


> -Daniel
> 
> > ---
> >  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 55 ++++++++++++++++++++++
> >  1 file changed, 55 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/
i915/gem/i915_gem_dmabuf.c
> > index 96ce95c8ac5a..93eea1031c82 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> > @@ -248,9 +248,64 @@ static void i915_gem_object_put_pages_dmabuf(struct 
drm_i915_gem_object *obj,
> >  				 DMA_BIDIRECTIONAL);
> >  }
> >  
> > +static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
> > +					 const struct 
drm_i915_gem_pwrite *args)
> > +{
> > +	struct dma_buf *dmabuf = obj->base.import_attach->dmabuf;
> > +	void __user *user_data = u64_to_user_ptr(args->data_ptr);
> > +	struct file *file = dmabuf->file;
> > +	const struct file_operations *fop = file->f_op;
> > +	void __force *vaddr;
> > +	int ret;
> > +
> > +	if (fop->write) {
> > +		loff_t offset = args->offset;
> > +
> > +		/*
> > +		 * fop->write() is supposed to call 
dma_buf_begin_cpu_access()
> > +		 * if O_SYNC flag is set, avoid calling it twice
> > +		 */
> > +		if (!(file->f_flags & O_SYNC)) {
> > +			ret = dma_buf_begin_cpu_access(dmabuf, 
DMA_TO_DEVICE);
> > +			if (ret)
> > +				return ret;
> > +		}
> > +
> > +		ret = fop->write(file, user_data, args->size, &offset);
> > +
> > +		if (!(file->f_flags & O_SYNC))
> > +			dma_buf_end_cpu_access(dmabuf, 
DMA_TO_DEVICE);
> > +
> > +		if (!ret)
> > +			return 0;
> > +	}
> > +
> > +	/* dma-buf file .write() not supported or failed, try 
dma_buf_vmap() */
> > +	ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +	if (ret)
> > +		return ret;
> > +
> > +	vaddr = dma_buf_vmap(dmabuf);
> > +	if (!vaddr)
> > +		goto out_err;
> > +
> > +	ret = copy_from_user(vaddr + args->offset, user_data, args->size);
> > +	dma_buf_vunmap(dmabuf, vaddr);
> > +	if (!ret)
> > +		goto out_end;
> > +
> > +out_err:
> > +	/* fall back to GTT mapping */
> > +	ret = -ENODEV;
> > +out_end:
> > +	dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +	return ret;
> > +}
> > +
> >  static const struct drm_i915_gem_object_ops i915_gem_object_dmabuf_ops = 
{
> >  	.get_pages = i915_gem_object_get_pages_dmabuf,
> >  	.put_pages = i915_gem_object_put_pages_dmabuf,
> > +	.pwrite = i915_gem_object_pwrite_dmabuf,
> >  };
> >  
> >  struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev,
> 
> 




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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Intel-gfx] [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback
  2019-11-08 17:20   ` Janusz Krzysztofik
@ 2019-11-08 17:20     ` Janusz Krzysztofik
  0 siblings, 0 replies; 16+ messages in thread
From: Janusz Krzysztofik @ 2019-11-08 17:20 UTC (permalink / raw)
  To: Joonas Lahtinen, Dave Airlie
  Cc: dri-devel, Daniel Vetter, intel-gfx, Matthew Auld

Hi,

On Tuesday, November 5, 2019 3:27:55 PM CET Daniel Vetter wrote:
> On Thu, Oct 31, 2019 at 09:29:56AM +0100, Janusz Krzysztofik wrote:
> > We need dmabuf specific pwrite() callback utilizing dma-buf API,
> > otherwise GEM_PWRITE IOCTL will no longer work with dma-buf backed
> > (i.e., PRIME imported) objects on hardware with no mappable aperture.
> > 
> > Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> > Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> 
> Do we have userspace for this (aside from igts)? Specifically for the
> gen12 + dma-buf import + pwrite/read/whatever case you're fixing in this
> series here.

I've discussed that on IRC with Daniel and Chris, it looks like 
I915_GEM_PREAD/PWRITE IOCTL support is provided on PRIME imported dma-buf 
objects mainly for completeness of the uAPI, useful for multi-device tests.  
There were conclusions we should ask Dave and Jonas for their position if that 
support should still be provided (and fixed for the no mappable aperture case) 
or maybe dropped as not used (and related (sub)tests also dropped).

Dave, Jonas, could you please give your comments?

Thanks,
Janusz


> -Daniel
> 
> > ---
> >  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 55 ++++++++++++++++++++++
> >  1 file changed, 55 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/
i915/gem/i915_gem_dmabuf.c
> > index 96ce95c8ac5a..93eea1031c82 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> > @@ -248,9 +248,64 @@ static void i915_gem_object_put_pages_dmabuf(struct 
drm_i915_gem_object *obj,
> >  				 DMA_BIDIRECTIONAL);
> >  }
> >  
> > +static int i915_gem_object_pwrite_dmabuf(struct drm_i915_gem_object *obj,
> > +					 const struct 
drm_i915_gem_pwrite *args)
> > +{
> > +	struct dma_buf *dmabuf = obj->base.import_attach->dmabuf;
> > +	void __user *user_data = u64_to_user_ptr(args->data_ptr);
> > +	struct file *file = dmabuf->file;
> > +	const struct file_operations *fop = file->f_op;
> > +	void __force *vaddr;
> > +	int ret;
> > +
> > +	if (fop->write) {
> > +		loff_t offset = args->offset;
> > +
> > +		/*
> > +		 * fop->write() is supposed to call 
dma_buf_begin_cpu_access()
> > +		 * if O_SYNC flag is set, avoid calling it twice
> > +		 */
> > +		if (!(file->f_flags & O_SYNC)) {
> > +			ret = dma_buf_begin_cpu_access(dmabuf, 
DMA_TO_DEVICE);
> > +			if (ret)
> > +				return ret;
> > +		}
> > +
> > +		ret = fop->write(file, user_data, args->size, &offset);
> > +
> > +		if (!(file->f_flags & O_SYNC))
> > +			dma_buf_end_cpu_access(dmabuf, 
DMA_TO_DEVICE);
> > +
> > +		if (!ret)
> > +			return 0;
> > +	}
> > +
> > +	/* dma-buf file .write() not supported or failed, try 
dma_buf_vmap() */
> > +	ret = dma_buf_begin_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +	if (ret)
> > +		return ret;
> > +
> > +	vaddr = dma_buf_vmap(dmabuf);
> > +	if (!vaddr)
> > +		goto out_err;
> > +
> > +	ret = copy_from_user(vaddr + args->offset, user_data, args->size);
> > +	dma_buf_vunmap(dmabuf, vaddr);
> > +	if (!ret)
> > +		goto out_end;
> > +
> > +out_err:
> > +	/* fall back to GTT mapping */
> > +	ret = -ENODEV;
> > +out_end:
> > +	dma_buf_end_cpu_access(dmabuf, DMA_TO_DEVICE);
> > +	return ret;
> > +}
> > +
> >  static const struct drm_i915_gem_object_ops i915_gem_object_dmabuf_ops = 
{
> >  	.get_pages = i915_gem_object_get_pages_dmabuf,
> >  	.put_pages = i915_gem_object_put_pages_dmabuf,
> > +	.pwrite = i915_gem_object_pwrite_dmabuf,
> >  };
> >  
> >  struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev,
> 
> 




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

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2019-11-08 17:20 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-31  8:29 [RESEND PATCH 1/3] drm/i915/dmabuf: Implement pwrite() callback Janusz Krzysztofik
2019-10-31  8:29 ` [Intel-gfx] " Janusz Krzysztofik
2019-10-31  8:29 ` [RESEND PATCH 2/3] drm/i915: Add vfunc for pread Janusz Krzysztofik
2019-10-31  8:29   ` [Intel-gfx] " Janusz Krzysztofik
2019-10-31  8:29 ` [RESEND PATCH 3/3] drm/i915/dmabuf: Implement pread() callback Janusz Krzysztofik
2019-10-31  8:29   ` [Intel-gfx] " Janusz Krzysztofik
2019-10-31  9:14 ` ✓ Fi.CI.BAT: success for series starting with [RESEND,1/3] drm/i915/dmabuf: Implement pwrite() callback Patchwork
2019-10-31  9:14   ` [Intel-gfx] " Patchwork
2019-11-01  9:09 ` ✓ Fi.CI.IGT: " Patchwork
2019-11-01  9:09   ` [Intel-gfx] " Patchwork
2019-11-05 14:27 ` [RESEND PATCH 1/3] " Daniel Vetter
2019-11-05 14:27   ` [Intel-gfx] " Daniel Vetter
2019-11-05 15:08   ` Janusz Krzysztofik
2019-11-05 15:08     ` [Intel-gfx] " Janusz Krzysztofik
2019-11-08 17:20   ` Janusz Krzysztofik
2019-11-08 17:20     ` [Intel-gfx] " Janusz Krzysztofik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox