All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/13] Misc cleanups and locking fixes
@ 2016-01-08 11:29 Tvrtko Ursulin
  2016-01-08 11:29 ` [PATCH 01/13] drm/i915/bdw+: Replace list_del+list_add_tail with list_move_tail Tvrtko Ursulin
                   ` (14 more replies)
  0 siblings, 15 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Random cleanups from yesterday mutated into a bit of locking verification and
fixing as suggested by Daniel Vetter.

Replacig list_for_each_entry with a dedicated i915_gem_obj_for_each_vma which
asserts the struct_mutex uncovered a few holes, not all of which (atomic display
are being fixed in this series).

I've also added the same assert to i915_gem_object_get_page since it sounds
correct to me to require it although I have not analysed all callsites. Some
might assume they know what they are doing so the approach might be too
drastic, but one like execlist is fixed in this series.

Tvrtko Ursulin (13):
  drm/i915/bdw+: Replace list_del+list_add_tail with list_move_tail
  drm/i915: Don't need a timer to wake us up
  drm/i915: Avoid invariant conditionals in lrc interrupt handler
  drm/i915: Fail engine initialization if LRCA is incorrectly aligned
  drm/i915: Cache LRCA in the context
  drm/i915: Only grab timestamps when needed
  drm/i915: Introduce dedicated object VMA iterator
  drm/i915: GEM operations need to be done under the big lock
  drm/i915: Remove two impossible asserts
  drm/i915: Introduce dedicated safe object VMA iterator
  drm/i915: Cache ringbuffer GTT address
  drm/i915: Add BKL asserts to get page helpers
  drm/i915: Cache LRC state page in the context

 drivers/gpu/drm/i915/i915_debugfs.c      |  23 +++---
 drivers/gpu/drm/i915/i915_drv.h          |  17 +++++
 drivers/gpu/drm/i915/i915_gem.c          |  72 ++++++++----------
 drivers/gpu/drm/i915/i915_gem_gtt.c      |   2 +-
 drivers/gpu/drm/i915/i915_gem_shrinker.c |   5 +-
 drivers/gpu/drm/i915/i915_gem_stolen.c   |   5 ++
 drivers/gpu/drm/i915/i915_gem_userptr.c  |   2 +-
 drivers/gpu/drm/i915/i915_gpu_error.c    |   4 +-
 drivers/gpu/drm/i915/intel_lrc.c         | 122 ++++++++++++++++---------------
 drivers/gpu/drm/i915/intel_lrc.h         |   3 +-
 drivers/gpu/drm/i915/intel_ringbuffer.c  |   3 +
 drivers/gpu/drm/i915/intel_ringbuffer.h  |   3 +
 12 files changed, 140 insertions(+), 121 deletions(-)

-- 
1.9.1

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

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

* [PATCH 01/13] drm/i915/bdw+: Replace list_del+list_add_tail with list_move_tail
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-11  8:22   ` Daniel Vetter
  2016-01-08 11:29 ` [PATCH 02/13] drm/i915: Don't need a timer to wake us up Tvrtko Ursulin
                   ` (13 subsequent siblings)
  14 siblings, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Same effect for slightly less source code and resulting binary.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/intel_lrc.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 23839ff04e27..8b6071fcd743 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -431,9 +431,8 @@ static void execlists_context_unqueue(struct intel_engine_cs *ring)
 			/* Same ctx: ignore first request, as second request
 			 * will update tail past first request's workload */
 			cursor->elsp_submitted = req0->elsp_submitted;
-			list_del(&req0->execlist_link);
-			list_add_tail(&req0->execlist_link,
-				&ring->execlist_retired_req_list);
+			list_move_tail(&req0->execlist_link,
+				       &ring->execlist_retired_req_list);
 			req0 = cursor;
 		} else {
 			req1 = cursor;
@@ -485,9 +484,8 @@ static bool execlists_check_remove_request(struct intel_engine_cs *ring,
 			     "Never submitted head request\n");
 
 			if (--head_req->elsp_submitted <= 0) {
-				list_del(&head_req->execlist_link);
-				list_add_tail(&head_req->execlist_link,
-					&ring->execlist_retired_req_list);
+				list_move_tail(&head_req->execlist_link,
+					       &ring->execlist_retired_req_list);
 				return true;
 			}
 		}
@@ -608,9 +606,8 @@ static int execlists_context_queue(struct drm_i915_gem_request *request)
 		if (request->ctx == tail_req->ctx) {
 			WARN(tail_req->elsp_submitted != 0,
 				"More than 2 already-submitted reqs queued\n");
-			list_del(&tail_req->execlist_link);
-			list_add_tail(&tail_req->execlist_link,
-				&ring->execlist_retired_req_list);
+			list_move_tail(&tail_req->execlist_link,
+				       &ring->execlist_retired_req_list);
 		}
 	}
 
-- 
1.9.1

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

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

* [PATCH 02/13] drm/i915: Don't need a timer to wake us up
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
  2016-01-08 11:29 ` [PATCH 01/13] drm/i915/bdw+: Replace list_del+list_add_tail with list_move_tail Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-11  8:26   ` Daniel Vetter
  2016-01-08 11:29 ` [PATCH 03/13] drm/i915: Avoid invariant conditionals in lrc interrupt handler Tvrtko Ursulin
                   ` (12 subsequent siblings)
  14 siblings, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Looks like the sleeping loop in __i915_wait_request can be
simplified by using io_schedule_timeout instead of setting
up and destroying a timer.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_gem.c | 28 ++++++++--------------------
 1 file changed, 8 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 6c60e04fc09c..de98dc41fb9f 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1135,11 +1135,6 @@ i915_gem_check_wedge(struct i915_gpu_error *error,
 	return 0;
 }
 
-static void fake_irq(unsigned long data)
-{
-	wake_up_process((struct task_struct *)data);
-}
-
 static bool missed_irq(struct drm_i915_private *dev_priv,
 		       struct intel_engine_cs *ring)
 {
@@ -1291,7 +1286,7 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
 	}
 
 	for (;;) {
-		struct timer_list timer;
+		long sched_timeout;
 
 		prepare_to_wait(&ring->irq_queue, &wait, state);
 
@@ -1321,21 +1316,14 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
 			break;
 		}
 
-		timer.function = NULL;
-		if (timeout || missed_irq(dev_priv, ring)) {
-			unsigned long expire;
-
-			setup_timer_on_stack(&timer, fake_irq, (unsigned long)current);
-			expire = missed_irq(dev_priv, ring) ? jiffies + 1 : timeout_expire;
-			mod_timer(&timer, expire);
-		}
-
-		io_schedule();
+		if (timeout)
+			sched_timeout = timeout_expire - jiffies;
+		else if (missed_irq(dev_priv, ring))
+			sched_timeout = 1;
+		else
+			sched_timeout = MAX_SCHEDULE_TIMEOUT;
 
-		if (timer.function) {
-			del_singleshot_timer_sync(&timer);
-			destroy_timer_on_stack(&timer);
-		}
+		io_schedule_timeout(sched_timeout);
 	}
 	if (!irq_test_in_progress)
 		ring->irq_put(ring);
-- 
1.9.1

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

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

* [PATCH 03/13] drm/i915: Avoid invariant conditionals in lrc interrupt handler
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
  2016-01-08 11:29 ` [PATCH 01/13] drm/i915/bdw+: Replace list_del+list_add_tail with list_move_tail Tvrtko Ursulin
  2016-01-08 11:29 ` [PATCH 02/13] drm/i915: Don't need a timer to wake us up Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-11  8:29   ` Daniel Vetter
  2016-01-08 11:29 ` [PATCH 04/13] drm/i915: Fail engine initialization if LRCA is incorrectly aligned Tvrtko Ursulin
                   ` (11 subsequent siblings)
  14 siblings, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

There is no need to check on what Gen we are running on every
interrupt and every command submission. We can instead set up
some of that when engines are initialized, store it in the
engine structure and use it directly at runtime.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/intel_lrc.c        | 36 ++++++++++++++++++---------------
 drivers/gpu/drm/i915/intel_ringbuffer.h |  2 ++
 2 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 8b6071fcd743..84977a6e6f3f 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -298,29 +298,15 @@ uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
 				     struct intel_engine_cs *ring)
 {
 	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
-	uint64_t desc;
+	uint64_t desc = ring->ctx_desc_template;
 	uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
 			LRC_PPHWSP_PN * PAGE_SIZE;
 
 	WARN_ON(lrca & 0xFFFFFFFF00000FFFULL);
 
-	desc = GEN8_CTX_VALID;
-	desc |= GEN8_CTX_ADDRESSING_MODE(dev) << GEN8_CTX_ADDRESSING_MODE_SHIFT;
-	if (IS_GEN8(ctx_obj->base.dev))
-		desc |= GEN8_CTX_L3LLC_COHERENT;
-	desc |= GEN8_CTX_PRIVILEGE;
 	desc |= lrca;
 	desc |= (u64)intel_execlists_ctx_id(ctx_obj) << GEN8_CTX_ID_SHIFT;
 
-	/* TODO: WaDisableLiteRestore when we start using semaphore
-	 * signalling between Command Streamers */
-	/* desc |= GEN8_CTX_FORCE_RESTORE; */
-
-	/* WaEnableForceRestoreInCtxtDescForVCS:skl */
-	/* WaEnableForceRestoreInCtxtDescForVCS:bxt */
-	if (disable_lite_restore_wa(ring))
-		desc |= GEN8_CTX_FORCE_RESTORE;
-
 	return desc;
 }
 
@@ -556,7 +542,7 @@ void intel_lrc_irq_handler(struct intel_engine_cs *ring)
 		}
 	}
 
-	if (disable_lite_restore_wa(ring)) {
+	if (ring->disable_lite_restore_wa) {
 		/* Prevent a ctx to preempt itself */
 		if ((status & GEN8_CTX_STATUS_ACTIVE_IDLE) &&
 		    (submit_contexts != 0))
@@ -1980,6 +1966,24 @@ static int logical_ring_init(struct drm_device *dev, struct intel_engine_cs *rin
 		goto error;
 	}
 
+	ring->disable_lite_restore_wa = disable_lite_restore_wa(ring);
+
+	ring->ctx_desc_template = GEN8_CTX_VALID;
+	ring->ctx_desc_template |= GEN8_CTX_ADDRESSING_MODE(dev) <<
+				   GEN8_CTX_ADDRESSING_MODE_SHIFT;
+	if (IS_GEN8(dev))
+		ring->ctx_desc_template |= GEN8_CTX_L3LLC_COHERENT;
+	ring->ctx_desc_template |= GEN8_CTX_PRIVILEGE;
+
+	/* TODO: WaDisableLiteRestore when we start using semaphore
+	 * signalling between Command Streamers */
+	/* ring->ctx_desc_template |= GEN8_CTX_FORCE_RESTORE; */
+
+	/* WaEnableForceRestoreInCtxtDescForVCS:skl */
+	/* WaEnableForceRestoreInCtxtDescForVCS:bxt */
+	if (ring->disable_lite_restore_wa)
+		ring->ctx_desc_template |= GEN8_CTX_FORCE_RESTORE;
+
 	return 0;
 
 error:
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
index 49574ffe54bc..0b91a4b77359 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -268,6 +268,8 @@ struct  intel_engine_cs {
 	struct list_head execlist_queue;
 	struct list_head execlist_retired_req_list;
 	u8 next_context_status_buffer;
+	bool disable_lite_restore_wa;
+	u32 ctx_desc_template;
 	u32             irq_keep_mask; /* bitmask for interrupts that should not be masked */
 	int		(*emit_request)(struct drm_i915_gem_request *request);
 	int		(*emit_flush)(struct drm_i915_gem_request *request,
-- 
1.9.1

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

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

* [PATCH 04/13] drm/i915: Fail engine initialization if LRCA is incorrectly aligned
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (2 preceding siblings ...)
  2016-01-08 11:29 ` [PATCH 03/13] drm/i915: Avoid invariant conditionals in lrc interrupt handler Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-11  8:31   ` Daniel Vetter
  2016-01-08 11:29 ` [PATCH 05/13] drm/i915: Cache LRCA in the context Tvrtko Ursulin
                   ` (10 subsequent siblings)
  14 siblings, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

LRCA can change only when it goes from unpinned to pinned so it
makes sense to check its alignment at that point rather than at
every batch buffer submission.

Furthermore, if we check it at pin time we can actually
gracefuly fail the engine initialization rather than just
spamming the logs at runtime with WARNs.

v2: Return ENODEV for bad alignment. (Chris Wilson)

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/intel_lrc.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 84977a6e6f3f..ff146a15d395 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -302,8 +302,6 @@ uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
 	uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
 			LRC_PPHWSP_PN * PAGE_SIZE;
 
-	WARN_ON(lrca & 0xFFFFFFFF00000FFFULL);
-
 	desc |= lrca;
 	desc |= (u64)intel_execlists_ctx_id(ctx_obj) << GEN8_CTX_ID_SHIFT;
 
@@ -1030,6 +1028,7 @@ static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
 {
 	struct drm_device *dev = ring->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
+	u64 lrca;
 	int ret = 0;
 
 	WARN_ON(!mutex_is_locked(&ring->dev->struct_mutex));
@@ -1038,6 +1037,12 @@ static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
 	if (ret)
 		return ret;
 
+	lrca = i915_gem_obj_ggtt_offset(ctx_obj) + LRC_PPHWSP_PN * PAGE_SIZE;
+	if (WARN_ON(lrca & 0xFFFFFFFF00000FFFULL)) {
+		ret = -ENODEV;
+		goto unpin_ctx_obj;
+	}
+
 	ret = intel_pin_and_map_ringbuffer_obj(ring->dev, ringbuf);
 	if (ret)
 		goto unpin_ctx_obj;
-- 
1.9.1

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

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

* [PATCH 05/13] drm/i915: Cache LRCA in the context
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (3 preceding siblings ...)
  2016-01-08 11:29 ` [PATCH 04/13] drm/i915: Fail engine initialization if LRCA is incorrectly aligned Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-11  8:38   ` Daniel Vetter
  2016-01-08 11:29 ` [PATCH 06/13] drm/i915: Only grab timestamps when needed Tvrtko Ursulin
                   ` (9 subsequent siblings)
  14 siblings, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

We are not allowed to call i915_gem_obj_ggtt_offset from irq
context without the big kernel lock held.

LRCA lifetime is well defined so cache it so it can be looked up
cheaply from the interrupt context and at command submission
time.

v2: Added irq context reasoning to the commit message. (Daniel Vetter)

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 15 ++++++--------
 drivers/gpu/drm/i915/i915_drv.h     |  1 +
 drivers/gpu/drm/i915/intel_lrc.c    | 40 ++++++++++++++++---------------------
 drivers/gpu/drm/i915/intel_lrc.h    |  3 ++-
 4 files changed, 26 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 3b05bd189eab..714a45cf8a51 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1976,12 +1976,13 @@ static int i915_context_status(struct seq_file *m, void *unused)
 }
 
 static void i915_dump_lrc_obj(struct seq_file *m,
-			      struct intel_engine_cs *ring,
-			      struct drm_i915_gem_object *ctx_obj)
+			      struct intel_context *ctx,
+			      struct intel_engine_cs *ring)
 {
 	struct page *page;
 	uint32_t *reg_state;
 	int j;
+	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
 	unsigned long ggtt_offset = 0;
 
 	if (ctx_obj == NULL) {
@@ -1991,7 +1992,7 @@ static void i915_dump_lrc_obj(struct seq_file *m,
 	}
 
 	seq_printf(m, "CONTEXT: %s %u\n", ring->name,
-		   intel_execlists_ctx_id(ctx_obj));
+		   intel_execlists_ctx_id(ctx, ring));
 
 	if (!i915_gem_obj_ggtt_bound(ctx_obj))
 		seq_puts(m, "\tNot bound in GGTT\n");
@@ -2040,8 +2041,7 @@ static int i915_dump_lrc(struct seq_file *m, void *unused)
 	list_for_each_entry(ctx, &dev_priv->context_list, link) {
 		for_each_ring(ring, dev_priv, i) {
 			if (ring->default_context != ctx)
-				i915_dump_lrc_obj(m, ring,
-						  ctx->engine[i].state);
+				i915_dump_lrc_obj(m, ctx, ring);
 		}
 	}
 
@@ -2115,11 +2115,8 @@ static int i915_execlists(struct seq_file *m, void *data)
 
 		seq_printf(m, "\t%d requests in queue\n", count);
 		if (head_req) {
-			struct drm_i915_gem_object *ctx_obj;
-
-			ctx_obj = head_req->ctx->engine[ring_id].state;
 			seq_printf(m, "\tHead request id: %u\n",
-				   intel_execlists_ctx_id(ctx_obj));
+				   intel_execlists_ctx_id(head_req->ctx, ring));
 			seq_printf(m, "\tHead request tail: %u\n",
 				   head_req->tail);
 		}
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 8cf655c6fc03..b77a5d84eac2 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -881,6 +881,7 @@ struct intel_context {
 		struct drm_i915_gem_object *state;
 		struct intel_ringbuffer *ringbuf;
 		int pin_count;
+		u32 lrca;
 	} engine[I915_NUM_RINGS];
 
 	struct list_head link;
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index ff146a15d395..ffe004de22b0 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -265,7 +265,8 @@ int intel_sanitize_enable_execlists(struct drm_device *dev, int enable_execlists
 
 /**
  * intel_execlists_ctx_id() - get the Execlists Context ID
- * @ctx_obj: Logical Ring Context backing object.
+ * @ctx: Context to get the ID for
+ * @ring: Engine to get the ID for
  *
  * Do not confuse with ctx->id! Unfortunately we have a name overload
  * here: the old context ID we pass to userspace as a handler so that
@@ -275,14 +276,12 @@ int intel_sanitize_enable_execlists(struct drm_device *dev, int enable_execlists
  *
  * Return: 20-bits globally unique context ID.
  */
-u32 intel_execlists_ctx_id(struct drm_i915_gem_object *ctx_obj)
+u32 intel_execlists_ctx_id(struct intel_context *ctx,
+			   struct intel_engine_cs *ring)
 {
-	u32 lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
-			LRC_PPHWSP_PN * PAGE_SIZE;
-
 	/* LRCA is required to be 4K aligned so the more significant 20 bits
 	 * are globally unique */
-	return lrca >> 12;
+	return ctx->engine[ring->id].lrca >> 12;
 }
 
 static bool disable_lite_restore_wa(struct intel_engine_cs *ring)
@@ -297,13 +296,11 @@ static bool disable_lite_restore_wa(struct intel_engine_cs *ring)
 uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
 				     struct intel_engine_cs *ring)
 {
-	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
+	uint64_t lrca = ctx->engine[ring->id].lrca;
 	uint64_t desc = ring->ctx_desc_template;
-	uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
-			LRC_PPHWSP_PN * PAGE_SIZE;
 
 	desc |= lrca;
-	desc |= (u64)intel_execlists_ctx_id(ctx_obj) << GEN8_CTX_ID_SHIFT;
+	desc |= (u64)intel_execlists_ctx_id(ctx, ring) << GEN8_CTX_ID_SHIFT;
 
 	return desc;
 }
@@ -461,9 +458,7 @@ static bool execlists_check_remove_request(struct intel_engine_cs *ring,
 					    execlist_link);
 
 	if (head_req != NULL) {
-		struct drm_i915_gem_object *ctx_obj =
-				head_req->ctx->engine[ring->id].state;
-		if (intel_execlists_ctx_id(ctx_obj) == request_id) {
+		if (intel_execlists_ctx_id(head_req->ctx, ring) == request_id) {
 			WARN(head_req->elsp_submitted == 0,
 			     "Never submitted head request\n");
 
@@ -1023,15 +1018,17 @@ int logical_ring_flush_all_caches(struct drm_i915_gem_request *req)
 }
 
 static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
-		struct drm_i915_gem_object *ctx_obj,
-		struct intel_ringbuffer *ringbuf)
+				   struct intel_context *ctx)
 {
 	struct drm_device *dev = ring->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
+	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
+	struct intel_ringbuffer *ringbuf = ctx->engine[ring->id].ringbuf;
 	u64 lrca;
-	int ret = 0;
+	int ret;
 
 	WARN_ON(!mutex_is_locked(&ring->dev->struct_mutex));
+
 	ret = i915_gem_obj_ggtt_pin(ctx_obj, GEN8_LR_CONTEXT_ALIGN,
 			PIN_OFFSET_BIAS | GUC_WOPCM_TOP);
 	if (ret)
@@ -1047,6 +1044,7 @@ static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
 	if (ret)
 		goto unpin_ctx_obj;
 
+	ctx->engine[ring->id].lrca = lrca;
 	ctx_obj->dirty = true;
 
 	/* Invalidate GuC TLB. */
@@ -1065,11 +1063,9 @@ static int intel_lr_context_pin(struct drm_i915_gem_request *rq)
 {
 	int ret = 0;
 	struct intel_engine_cs *ring = rq->ring;
-	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
-	struct intel_ringbuffer *ringbuf = rq->ringbuf;
 
 	if (rq->ctx->engine[ring->id].pin_count++ == 0) {
-		ret = intel_lr_context_do_pin(ring, ctx_obj, ringbuf);
+		ret = intel_lr_context_do_pin(ring, rq->ctx);
 		if (ret)
 			goto reset_pin_count;
 	}
@@ -1091,6 +1087,7 @@ void intel_lr_context_unpin(struct drm_i915_gem_request *rq)
 		if (--rq->ctx->engine[ring->id].pin_count == 0) {
 			intel_unpin_ringbuffer_obj(ringbuf);
 			i915_gem_object_ggtt_unpin(ctx_obj);
+			rq->ctx->engine[ring->id].lrca = 0;
 		}
 	}
 }
@@ -1960,10 +1957,7 @@ static int logical_ring_init(struct drm_device *dev, struct intel_engine_cs *rin
 		goto error;
 
 	/* As this is the default context, always pin it */
-	ret = intel_lr_context_do_pin(
-			ring,
-			ring->default_context->engine[ring->id].state,
-			ring->default_context->engine[ring->id].ringbuf);
+	ret = intel_lr_context_do_pin(ring, ring->default_context);
 	if (ret) {
 		DRM_ERROR(
 			"Failed to pin and map ringbuffer %s: %d\n",
diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h
index de41ad6cd63d..f9db5f187d77 100644
--- a/drivers/gpu/drm/i915/intel_lrc.h
+++ b/drivers/gpu/drm/i915/intel_lrc.h
@@ -106,6 +106,8 @@ void intel_lr_context_reset(struct drm_device *dev,
 			struct intel_context *ctx);
 uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
 				     struct intel_engine_cs *ring);
+u32 intel_execlists_ctx_id(struct intel_context *ctx,
+			   struct intel_engine_cs *ring);
 
 /* Execlists */
 int intel_sanitize_enable_execlists(struct drm_device *dev, int enable_execlists);
@@ -113,7 +115,6 @@ struct i915_execbuffer_params;
 int intel_execlists_submission(struct i915_execbuffer_params *params,
 			       struct drm_i915_gem_execbuffer2 *args,
 			       struct list_head *vmas);
-u32 intel_execlists_ctx_id(struct drm_i915_gem_object *ctx_obj);
 
 void intel_lrc_irq_handler(struct intel_engine_cs *ring);
 void intel_execlists_retire_requests(struct intel_engine_cs *ring);
-- 
1.9.1

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

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

* [PATCH 06/13] drm/i915: Only grab timestamps when needed
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (4 preceding siblings ...)
  2016-01-08 11:29 ` [PATCH 05/13] drm/i915: Cache LRCA in the context Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-11  8:42   ` Daniel Vetter
  2016-01-08 11:29 ` [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator Tvrtko Ursulin
                   ` (8 subsequent siblings)
  14 siblings, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

No need to call ktime_get_raw_ns twice per unlimited wait and can
also elimate a local variable.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index de98dc41fb9f..c4f69579eb7a 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1246,7 +1246,7 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
 	int state = interruptible ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE;
 	DEFINE_WAIT(wait);
 	unsigned long timeout_expire;
-	s64 before, now;
+	s64 before = 0;
 	int ret;
 
 	WARN(!intel_irqs_enabled(dev_priv), "IRQs disabled");
@@ -1266,14 +1266,17 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
 			return -ETIME;
 
 		timeout_expire = jiffies + nsecs_to_jiffies_timeout(*timeout);
+
+		/*
+		 * Record current time in case interrupted by signal, or wedged.
+		 */
+		before = ktime_get_raw_ns();
 	}
 
 	if (INTEL_INFO(dev_priv)->gen >= 6)
 		gen6_rps_boost(dev_priv, rps, req->emitted_jiffies);
 
-	/* Record current time in case interrupted by signal, or wedged */
 	trace_i915_gem_request_wait_begin(req);
-	before = ktime_get_raw_ns();
 
 	/* Optimistic spin for the next jiffie before touching IRQs */
 	ret = __i915_spin_request(req, state);
@@ -1331,11 +1334,10 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
 	finish_wait(&ring->irq_queue, &wait);
 
 out:
-	now = ktime_get_raw_ns();
 	trace_i915_gem_request_wait_end(req);
 
 	if (timeout) {
-		s64 tres = *timeout - (now - before);
+		s64 tres = *timeout - (ktime_get_raw_ns() - before);
 
 		*timeout = tres < 0 ? 0 : tres;
 
-- 
1.9.1

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

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

* [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (5 preceding siblings ...)
  2016-01-08 11:29 ` [PATCH 06/13] drm/i915: Only grab timestamps when needed Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-08 11:44   ` Chris Wilson
  2016-01-08 13:29   ` Tvrtko Ursulin
  2016-01-08 11:29 ` [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock Tvrtko Ursulin
                   ` (7 subsequent siblings)
  14 siblings, 2 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx; +Cc: Daniel Vetter

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Purpose is to catch places which iterate the object VMA list
without holding the big lock.

Implemented by open coding list_for_each_entry to make the
macro compatible with existing call sites.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/i915_debugfs.c      |  8 ++++----
 drivers/gpu/drm/i915/i915_drv.h          |  6 ++++++
 drivers/gpu/drm/i915/i915_gem.c          | 24 ++++++++++++------------
 drivers/gpu/drm/i915/i915_gem_gtt.c      |  2 +-
 drivers/gpu/drm/i915/i915_gem_shrinker.c |  2 +-
 drivers/gpu/drm/i915/i915_gpu_error.c    |  4 ++--
 6 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 714a45cf8a51..d7c2a3201161 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -117,7 +117,7 @@ static u64 i915_gem_obj_total_ggtt_size(struct drm_i915_gem_object *obj)
 	u64 size = 0;
 	struct i915_vma *vma;
 
-	list_for_each_entry(vma, &obj->vma_list, vma_link) {
+	i915_gem_obj_for_each_vma(vma, obj) {
 		if (i915_is_ggtt(vma->vm) &&
 		    drm_mm_node_allocated(&vma->node))
 			size += vma->node.size;
@@ -155,7 +155,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
 		   obj->madv == I915_MADV_DONTNEED ? " purgeable" : "");
 	if (obj->base.name)
 		seq_printf(m, " (name: %d)", obj->base.name);
-	list_for_each_entry(vma, &obj->vma_list, vma_link) {
+	i915_gem_obj_for_each_vma(vma, obj) {
 		if (vma->pin_count > 0)
 			pin_count++;
 	}
@@ -164,7 +164,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
 		seq_printf(m, " (display)");
 	if (obj->fence_reg != I915_FENCE_REG_NONE)
 		seq_printf(m, " (fence: %d)", obj->fence_reg);
-	list_for_each_entry(vma, &obj->vma_list, vma_link) {
+	i915_gem_obj_for_each_vma(vma, obj) {
 		seq_printf(m, " (%sgtt offset: %08llx, size: %08llx",
 			   i915_is_ggtt(vma->vm) ? "g" : "pp",
 			   vma->node.start, vma->node.size);
@@ -342,7 +342,7 @@ static int per_file_stats(int id, void *ptr, void *data)
 		stats->shared += obj->base.size;
 
 	if (USES_FULL_PPGTT(obj->base.dev)) {
-		list_for_each_entry(vma, &obj->vma_list, vma_link) {
+		i915_gem_obj_for_each_vma(vma, obj) {
 			struct i915_hw_ppgtt *ppgtt;
 
 			if (!drm_mm_node_allocated(&vma->node))
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index b77a5d84eac2..0406a020dfcc 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2852,6 +2852,12 @@ struct drm_i915_gem_object *i915_gem_object_create_from_data(
 void i915_gem_free_object(struct drm_gem_object *obj);
 void i915_gem_vma_destroy(struct i915_vma *vma);
 
+#define i915_gem_obj_for_each_vma(vma, obj) \
+	for (WARN_ON_ONCE(!mutex_is_locked(&(obj)->base.dev->struct_mutex)), \
+	     vma = list_first_entry(&(obj)->vma_list, typeof(*vma), vma_link);\
+	     &vma->vma_link != (&(obj)->vma_list); \
+	     vma = list_next_entry(vma, vma_link))
+
 /* Flags used by pin/bind&friends. */
 #define PIN_MAPPABLE	(1<<0)
 #define PIN_NONBLOCK	(1<<1)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index c4f69579eb7a..415bb5ef8b3a 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2442,7 +2442,7 @@ i915_gem_object_retire__read(struct drm_i915_gem_object *obj, int ring)
 	list_move_tail(&obj->global_list,
 		       &to_i915(obj->base.dev)->mm.bound_list);
 
-	list_for_each_entry(vma, &obj->vma_list, vma_link) {
+	i915_gem_obj_for_each_vma(vma, obj) {
 		if (!list_empty(&vma->mm_list))
 			list_move_tail(&vma->mm_list, &vma->vm->inactive_list);
 	}
@@ -3834,7 +3834,7 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
 			 */
 		}
 
-		list_for_each_entry(vma, &obj->vma_list, vma_link) {
+		i915_gem_obj_for_each_vma(vma, obj) {
 			if (!drm_mm_node_allocated(&vma->node))
 				continue;
 
@@ -3844,7 +3844,7 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
 		}
 	}
 
-	list_for_each_entry(vma, &obj->vma_list, vma_link)
+	i915_gem_obj_for_each_vma(vma, obj)
 		vma->node.color = cache_level;
 	obj->cache_level = cache_level;
 
@@ -4564,7 +4564,7 @@ struct i915_vma *i915_gem_obj_to_vma(struct drm_i915_gem_object *obj,
 				     struct i915_address_space *vm)
 {
 	struct i915_vma *vma;
-	list_for_each_entry(vma, &obj->vma_list, vma_link) {
+	i915_gem_obj_for_each_vma(vma, obj) {
 		if (vma->ggtt_view.type == I915_GGTT_VIEW_NORMAL &&
 		    vma->vm == vm)
 			return vma;
@@ -4581,7 +4581,7 @@ struct i915_vma *i915_gem_obj_to_ggtt_view(struct drm_i915_gem_object *obj,
 	if (WARN_ONCE(!view, "no view specified"))
 		return ERR_PTR(-EINVAL);
 
-	list_for_each_entry(vma, &obj->vma_list, vma_link)
+	i915_gem_obj_for_each_vma(vma, obj)
 		if (vma->vm == ggtt &&
 		    i915_ggtt_view_equal(&vma->ggtt_view, view))
 			return vma;
@@ -5144,7 +5144,7 @@ u64 i915_gem_obj_offset(struct drm_i915_gem_object *o,
 
 	WARN_ON(vm == &dev_priv->mm.aliasing_ppgtt->base);
 
-	list_for_each_entry(vma, &o->vma_list, vma_link) {
+	i915_gem_obj_for_each_vma(vma, o) {
 		if (i915_is_ggtt(vma->vm) &&
 		    vma->ggtt_view.type != I915_GGTT_VIEW_NORMAL)
 			continue;
@@ -5163,7 +5163,7 @@ u64 i915_gem_obj_ggtt_offset_view(struct drm_i915_gem_object *o,
 	struct i915_address_space *ggtt = i915_obj_to_ggtt(o);
 	struct i915_vma *vma;
 
-	list_for_each_entry(vma, &o->vma_list, vma_link)
+	i915_gem_obj_for_each_vma(vma, o)
 		if (vma->vm == ggtt &&
 		    i915_ggtt_view_equal(&vma->ggtt_view, view))
 			return vma->node.start;
@@ -5177,7 +5177,7 @@ bool i915_gem_obj_bound(struct drm_i915_gem_object *o,
 {
 	struct i915_vma *vma;
 
-	list_for_each_entry(vma, &o->vma_list, vma_link) {
+	i915_gem_obj_for_each_vma(vma, o) {
 		if (i915_is_ggtt(vma->vm) &&
 		    vma->ggtt_view.type != I915_GGTT_VIEW_NORMAL)
 			continue;
@@ -5194,7 +5194,7 @@ bool i915_gem_obj_ggtt_bound_view(struct drm_i915_gem_object *o,
 	struct i915_address_space *ggtt = i915_obj_to_ggtt(o);
 	struct i915_vma *vma;
 
-	list_for_each_entry(vma, &o->vma_list, vma_link)
+	i915_gem_obj_for_each_vma(vma, o)
 		if (vma->vm == ggtt &&
 		    i915_ggtt_view_equal(&vma->ggtt_view, view) &&
 		    drm_mm_node_allocated(&vma->node))
@@ -5207,7 +5207,7 @@ bool i915_gem_obj_bound_any(struct drm_i915_gem_object *o)
 {
 	struct i915_vma *vma;
 
-	list_for_each_entry(vma, &o->vma_list, vma_link)
+	i915_gem_obj_for_each_vma(vma, o)
 		if (drm_mm_node_allocated(&vma->node))
 			return true;
 
@@ -5224,7 +5224,7 @@ unsigned long i915_gem_obj_size(struct drm_i915_gem_object *o,
 
 	BUG_ON(list_empty(&o->vma_list));
 
-	list_for_each_entry(vma, &o->vma_list, vma_link) {
+	i915_gem_obj_for_each_vma(vma, o) {
 		if (i915_is_ggtt(vma->vm) &&
 		    vma->ggtt_view.type != I915_GGTT_VIEW_NORMAL)
 			continue;
@@ -5237,7 +5237,7 @@ unsigned long i915_gem_obj_size(struct drm_i915_gem_object *o,
 bool i915_gem_obj_is_pinned(struct drm_i915_gem_object *obj)
 {
 	struct i915_vma *vma;
-	list_for_each_entry(vma, &obj->vma_list, vma_link)
+	i915_gem_obj_for_each_vma(vma, obj)
 		if (vma->pin_count > 0)
 			return true;
 
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 56f4f2e58d53..40fe2bf6bd91 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -3220,7 +3220,7 @@ void i915_gem_restore_gtt_mappings(struct drm_device *dev)
 	vm = &dev_priv->gtt.base;
 	list_for_each_entry(obj, &dev_priv->mm.bound_list, global_list) {
 		flush = false;
-		list_for_each_entry(vma, &obj->vma_list, vma_link) {
+		i915_gem_obj_for_each_vma(vma, obj) {
 			if (vma->vm != vm)
 				continue;
 
diff --git a/drivers/gpu/drm/i915/i915_gem_shrinker.c b/drivers/gpu/drm/i915/i915_gem_shrinker.c
index 16da9c1422cc..4106666a4303 100644
--- a/drivers/gpu/drm/i915/i915_gem_shrinker.c
+++ b/drivers/gpu/drm/i915/i915_gem_shrinker.c
@@ -52,7 +52,7 @@ static int num_vma_bound(struct drm_i915_gem_object *obj)
 	struct i915_vma *vma;
 	int count = 0;
 
-	list_for_each_entry(vma, &obj->vma_list, vma_link) {
+	i915_gem_obj_for_each_vma(vma, obj) {
 		if (drm_mm_node_allocated(&vma->node))
 			count++;
 		if (vma->pin_count)
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 06ca4082735b..8b7a8c4b9b37 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -755,7 +755,7 @@ static u32 capture_pinned_bo(struct drm_i915_error_buffer *err,
 		if (err == last)
 			break;
 
-		list_for_each_entry(vma, &obj->vma_list, vma_link)
+		i915_gem_obj_for_each_vma(vma, obj)
 			if (vma->vm == vm && vma->pin_count > 0)
 				capture_bo(err++, vma);
 	}
@@ -1128,7 +1128,7 @@ static void i915_gem_capture_vm(struct drm_i915_private *dev_priv,
 	error->active_bo_count[ndx] = i;
 
 	list_for_each_entry(obj, &dev_priv->mm.bound_list, global_list) {
-		list_for_each_entry(vma, &obj->vma_list, vma_link)
+		i915_gem_obj_for_each_vma(vma, obj)
 			if (vma->vm == vm && vma->pin_count > 0)
 				i++;
 	}
-- 
1.9.1

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

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

* [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (6 preceding siblings ...)
  2016-01-08 11:29 ` [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-08 11:40   ` Chris Wilson
                     ` (2 more replies)
  2016-01-08 11:29 ` [PATCH 09/13] drm/i915: Remove two impossible asserts Tvrtko Ursulin
                   ` (6 subsequent siblings)
  14 siblings, 3 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

VMA creation and GEM list management need the big lock.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_stolen.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c
index c384dc9c8a63..16cab255fa6c 100644
--- a/drivers/gpu/drm/i915/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
@@ -670,9 +670,12 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev,
 	if (gtt_offset == I915_GTT_OFFSET_NONE)
 		return obj;
 
+	mutex_lock(&dev->struct_mutex);
+
 	vma = i915_gem_obj_lookup_or_create_vma(obj, ggtt);
 	if (IS_ERR(vma)) {
 		ret = PTR_ERR(vma);
+		mutex_unlock(&dev->struct_mutex);
 		goto err;
 	}
 
@@ -698,6 +701,8 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev,
 	list_add_tail(&obj->global_list, &dev_priv->mm.bound_list);
 	i915_gem_object_pin_pages(obj);
 
+	mutex_unlock(&dev->struct_mutex);
+
 	return obj;
 
 err:
-- 
1.9.1

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

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

* [PATCH 09/13] drm/i915: Remove two impossible asserts
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (7 preceding siblings ...)
  2016-01-08 11:29 ` [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-11  8:49   ` Daniel Vetter
  2016-01-08 11:29 ` [PATCH 10/13] drm/i915: Introduce dedicated safe object VMA iterator Tvrtko Ursulin
                   ` (5 subsequent siblings)
  14 siblings, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Engine initialization would have failed if those two weren't
pinned and calling i915_gem_obj_is_pinned is illegal from irq
context without the big lock held.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/intel_lrc.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index ffe004de22b0..5b3795815d8e 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -350,8 +350,6 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
 	uint32_t *reg_state;
 
 	BUG_ON(!ctx_obj);
-	WARN_ON(!i915_gem_obj_is_pinned(ctx_obj));
-	WARN_ON(!i915_gem_obj_is_pinned(rb_obj));
 
 	page = i915_gem_object_get_dirty_page(ctx_obj, LRC_STATE_PN);
 	reg_state = kmap_atomic(page);
-- 
1.9.1

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

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

* [PATCH 10/13] drm/i915: Introduce dedicated safe object VMA iterator
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (8 preceding siblings ...)
  2016-01-08 11:29 ` [PATCH 09/13] drm/i915: Remove two impossible asserts Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-08 11:29 ` [PATCH 11/13] drm/i915: Cache ringbuffer GTT address Tvrtko Ursulin
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx; +Cc: Daniel Vetter

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Purpose is to catch places which iterate the object VMA list
without holding the big lock.

Implemented by open coding list_for_each_entry_safe to make
the macro compatible with existing call sites.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/i915_drv.h          | 7 +++++++
 drivers/gpu/drm/i915/i915_gem.c          | 6 +++---
 drivers/gpu/drm/i915/i915_gem_shrinker.c | 3 +--
 drivers/gpu/drm/i915/i915_gem_userptr.c  | 2 +-
 4 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 0406a020dfcc..81a83424fa13 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2858,6 +2858,13 @@ void i915_gem_vma_destroy(struct i915_vma *vma);
 	     &vma->vma_link != (&(obj)->vma_list); \
 	     vma = list_next_entry(vma, vma_link))
 
+#define i915_gem_obj_for_each_vma_safe(vma, next, obj) \
+	for (WARN_ON_ONCE(!mutex_is_locked(&(obj)->base.dev->struct_mutex)), \
+	     vma = list_first_entry(&(obj)->vma_list, typeof(*vma), vma_link), \
+	     next = list_next_entry(vma, vma_link); \
+	     &vma->vma_link != (&(obj)->vma_list); \
+	     vma = next, next = list_next_entry(next, vma_link))
+
 /* Flags used by pin/bind&friends. */
 #define PIN_MAPPABLE	(1<<0)
 #define PIN_NONBLOCK	(1<<1)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 415bb5ef8b3a..5a6daeaef680 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -272,7 +272,7 @@ drop_pages(struct drm_i915_gem_object *obj)
 	int ret;
 
 	drm_gem_object_reference(&obj->base);
-	list_for_each_entry_safe(vma, next, &obj->vma_list, vma_link)
+	i915_gem_obj_for_each_vma_safe(vma, next, obj)
 		if (i915_vma_unbind(vma))
 			break;
 
@@ -3771,7 +3771,7 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
 	 * catch the issue of the CS prefetch crossing page boundaries and
 	 * reading an invalid PTE on older architectures.
 	 */
-	list_for_each_entry_safe(vma, next, &obj->vma_list, vma_link) {
+	i915_gem_obj_for_each_vma_safe(vma, next, obj) {
 		if (!drm_mm_node_allocated(&vma->node))
 			continue;
 
@@ -4507,7 +4507,7 @@ void i915_gem_free_object(struct drm_gem_object *gem_obj)
 
 	trace_i915_gem_object_destroy(obj);
 
-	list_for_each_entry_safe(vma, next, &obj->vma_list, vma_link) {
+	i915_gem_obj_for_each_vma_safe(vma, next, obj) {
 		int ret;
 
 		vma->pin_count = 0;
diff --git a/drivers/gpu/drm/i915/i915_gem_shrinker.c b/drivers/gpu/drm/i915/i915_gem_shrinker.c
index 4106666a4303..3cf83f4eb7c9 100644
--- a/drivers/gpu/drm/i915/i915_gem_shrinker.c
+++ b/drivers/gpu/drm/i915/i915_gem_shrinker.c
@@ -175,8 +175,7 @@ i915_gem_shrink(struct drm_i915_private *dev_priv,
 			drm_gem_object_reference(&obj->base);
 
 			/* For the unbound phase, this should be a no-op! */
-			list_for_each_entry_safe(vma, v,
-						 &obj->vma_list, vma_link)
+			i915_gem_obj_for_each_vma_safe(vma, v, obj)
 				if (i915_vma_unbind(vma))
 					break;
 
diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c b/drivers/gpu/drm/i915/i915_gem_userptr.c
index 19fb0bddc1cd..b730dfffe306 100644
--- a/drivers/gpu/drm/i915/i915_gem_userptr.c
+++ b/drivers/gpu/drm/i915/i915_gem_userptr.c
@@ -81,7 +81,7 @@ static void __cancel_userptr__worker(struct work_struct *work)
 		was_interruptible = dev_priv->mm.interruptible;
 		dev_priv->mm.interruptible = false;
 
-		list_for_each_entry_safe(vma, tmp, &obj->vma_list, vma_link) {
+		i915_gem_obj_for_each_vma_safe(vma, tmp, obj) {
 			int ret = i915_vma_unbind(vma);
 			WARN_ON(ret && ret != -EIO);
 		}
-- 
1.9.1

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

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

* [PATCH 11/13] drm/i915: Cache ringbuffer GTT address
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (9 preceding siblings ...)
  2016-01-08 11:29 ` [PATCH 10/13] drm/i915: Introduce dedicated safe object VMA iterator Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-08 11:37   ` Chris Wilson
                     ` (2 more replies)
  2016-01-08 11:29 ` [PATCH 12/13] drm/i915: Add BKL asserts to get page helpers Tvrtko Ursulin
                   ` (3 subsequent siblings)
  14 siblings, 3 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Purpose is to avoid calling i915_gem_obj_ggtt_offset from the
interrupt context without the big lock held.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/intel_lrc.c        | 3 +--
 drivers/gpu/drm/i915/intel_ringbuffer.c | 3 +++
 drivers/gpu/drm/i915/intel_ringbuffer.h | 1 +
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 5b3795815d8e..70c511ef6b12 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -345,7 +345,6 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
 	struct intel_engine_cs *ring = rq->ring;
 	struct i915_hw_ppgtt *ppgtt = rq->ctx->ppgtt;
 	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
-	struct drm_i915_gem_object *rb_obj = rq->ringbuf->obj;
 	struct page *page;
 	uint32_t *reg_state;
 
@@ -355,7 +354,7 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
 	reg_state = kmap_atomic(page);
 
 	reg_state[CTX_RING_TAIL+1] = rq->tail;
-	reg_state[CTX_RING_BUFFER_START+1] = i915_gem_obj_ggtt_offset(rb_obj);
+	reg_state[CTX_RING_BUFFER_START+1] = rq->ringbuf->gtt_start;
 
 	if (ppgtt && !USES_FULL_48BIT_PPGTT(ppgtt->base.dev)) {
 		/* True 32b PPGTT with dynamic page allocation: update PDP
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 339701d7a9a5..9094ce254125 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1988,6 +1988,7 @@ void intel_unpin_ringbuffer_obj(struct intel_ringbuffer *ringbuf)
 	else
 		iounmap(ringbuf->virtual_start);
 	ringbuf->virtual_start = NULL;
+	ringbuf->gtt_start = 0;
 	i915_gem_object_ggtt_unpin(ringbuf->obj);
 }
 
@@ -2054,6 +2055,8 @@ int intel_pin_and_map_ringbuffer_obj(struct drm_device *dev,
 		}
 	}
 
+	ringbuf->gtt_start = i915_gem_obj_ggtt_offset(obj);
+
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
index 0b91a4b77359..25d3716228ae 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -98,6 +98,7 @@ struct intel_ring_hangcheck {
 struct intel_ringbuffer {
 	struct drm_i915_gem_object *obj;
 	void __iomem *virtual_start;
+	u64 gtt_start;
 
 	struct intel_engine_cs *ring;
 	struct list_head link;
-- 
1.9.1

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

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

* [PATCH 12/13] drm/i915: Add BKL asserts to get page helpers
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (10 preceding siblings ...)
  2016-01-08 11:29 ` [PATCH 11/13] drm/i915: Cache ringbuffer GTT address Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-08 11:37   ` Chris Wilson
  2016-01-08 11:29 ` [PATCH 13/13] drm/i915: Cache LRC state page in the context Tvrtko Ursulin
                   ` (2 subsequent siblings)
  14 siblings, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Purpose is catching illegal callers.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h | 2 ++
 drivers/gpu/drm/i915/i915_gem.c | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 81a83424fa13..51869496b299 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2916,6 +2916,8 @@ i915_gem_object_get_dirty_page(struct drm_i915_gem_object *obj, int n);
 static inline struct page *
 i915_gem_object_get_page(struct drm_i915_gem_object *obj, int n)
 {
+	WARN_ON_ONCE(!mutex_is_locked(&obj->base.dev->struct_mutex));
+
 	if (WARN_ON(n >= obj->base.size >> PAGE_SHIFT))
 		return NULL;
 
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 5a6daeaef680..b54b5619e07f 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -5250,6 +5250,8 @@ i915_gem_object_get_dirty_page(struct drm_i915_gem_object *obj, int n)
 {
 	struct page *page;
 
+	WARN_ON_ONCE(!mutex_is_locked(&obj->base.dev->struct_mutex));
+
 	/* Only default objects have per-page dirty tracking */
 	if (WARN_ON(obj->ops != &i915_gem_object_ops))
 		return NULL;
-- 
1.9.1

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

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

* [PATCH 13/13] drm/i915: Cache LRC state page in the context
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (11 preceding siblings ...)
  2016-01-08 11:29 ` [PATCH 12/13] drm/i915: Add BKL asserts to get page helpers Tvrtko Ursulin
@ 2016-01-08 11:29 ` Tvrtko Ursulin
  2016-01-08 11:38 ` [PATCH v2 00/13] Misc cleanups and locking fixes Chris Wilson
  2016-01-11  9:44 ` ✗ failure: Fi.CI.BAT Patchwork
  14 siblings, 0 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:29 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

LRC lifetime is well defined so we can cache the page pointing
to the object backing store in the context in order to avoid
walking over the object SG page list from the interrupt context
without the big lock held.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h  |  1 +
 drivers/gpu/drm/i915/intel_lrc.c | 17 +++++++++++------
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 51869496b299..0e3554c821fa 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -882,6 +882,7 @@ struct intel_context {
 		struct intel_ringbuffer *ringbuf;
 		int pin_count;
 		u32 lrca;
+		struct page *lrc_state_page;
 	} engine[I915_NUM_RINGS];
 
 	struct list_head link;
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 70c511ef6b12..016d8c833a99 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -344,14 +344,10 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
 {
 	struct intel_engine_cs *ring = rq->ring;
 	struct i915_hw_ppgtt *ppgtt = rq->ctx->ppgtt;
-	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
-	struct page *page;
 	uint32_t *reg_state;
 
-	BUG_ON(!ctx_obj);
-
-	page = i915_gem_object_get_dirty_page(ctx_obj, LRC_STATE_PN);
-	reg_state = kmap_atomic(page);
+	BUG_ON(!rq->ctx->engine[ring->id].lrc_state_page);
+	reg_state = kmap_atomic(rq->ctx->engine[ring->id].lrc_state_page);
 
 	reg_state[CTX_RING_TAIL+1] = rq->tail;
 	reg_state[CTX_RING_BUFFER_START+1] = rq->ringbuf->gtt_start;
@@ -1021,6 +1017,7 @@ static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
 	struct intel_ringbuffer *ringbuf = ctx->engine[ring->id].ringbuf;
+	struct page *lrc_state_page;
 	u64 lrca;
 	int ret;
 
@@ -1037,11 +1034,18 @@ static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
 		goto unpin_ctx_obj;
 	}
 
+	lrc_state_page = i915_gem_object_get_dirty_page(ctx_obj, LRC_STATE_PN);
+	if (WARN_ON(!lrc_state_page)) {
+		ret = -ENODEV;
+		goto unpin_ctx_obj;
+	}
+
 	ret = intel_pin_and_map_ringbuffer_obj(ring->dev, ringbuf);
 	if (ret)
 		goto unpin_ctx_obj;
 
 	ctx->engine[ring->id].lrca = lrca;
+	ctx->engine[ring->id].lrc_state_page = lrc_state_page;
 	ctx_obj->dirty = true;
 
 	/* Invalidate GuC TLB. */
@@ -1085,6 +1089,7 @@ void intel_lr_context_unpin(struct drm_i915_gem_request *rq)
 			intel_unpin_ringbuffer_obj(ringbuf);
 			i915_gem_object_ggtt_unpin(ctx_obj);
 			rq->ctx->engine[ring->id].lrca = 0;
+			rq->ctx->engine[ring->id].lrc_state_page = NULL;
 		}
 	}
 }
-- 
1.9.1

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

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

* Re: [PATCH 12/13] drm/i915: Add BKL asserts to get page helpers
  2016-01-08 11:29 ` [PATCH 12/13] drm/i915: Add BKL asserts to get page helpers Tvrtko Ursulin
@ 2016-01-08 11:37   ` Chris Wilson
  0 siblings, 0 replies; 124+ messages in thread
From: Chris Wilson @ 2016-01-08 11:37 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:51AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> Purpose is catching illegal callers.

I know you didn't try benchmarking this.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 11/13] drm/i915: Cache ringbuffer GTT address
  2016-01-08 11:29 ` [PATCH 11/13] drm/i915: Cache ringbuffer GTT address Tvrtko Ursulin
@ 2016-01-08 11:37   ` Chris Wilson
  2016-01-11  8:49   ` Daniel Vetter
  2016-01-11 16:16   ` [PATCH 11/13] drm/i915: Cache ringbuffer GTT address Dave Gordon
  2 siblings, 0 replies; 124+ messages in thread
From: Chris Wilson @ 2016-01-08 11:37 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:50AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> Purpose is to avoid calling i915_gem_obj_ggtt_offset from the
> interrupt context without the big lock held.

No. Move to tracking VMA.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v2 00/13] Misc cleanups and locking fixes
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (12 preceding siblings ...)
  2016-01-08 11:29 ` [PATCH 13/13] drm/i915: Cache LRC state page in the context Tvrtko Ursulin
@ 2016-01-08 11:38 ` Chris Wilson
  2016-01-11  9:44 ` ✗ failure: Fi.CI.BAT Patchwork
  14 siblings, 0 replies; 124+ messages in thread
From: Chris Wilson @ 2016-01-08 11:38 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:39AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> Random cleanups from yesterday mutated into a bit of locking verification and
> fixing as suggested by Daniel Vetter.

Rather than duplicating my work, please do help fix the bugs that are
impeding moving forwards.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock
  2016-01-08 11:29 ` [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock Tvrtko Ursulin
@ 2016-01-08 11:40   ` Chris Wilson
  2016-01-08 11:45     ` Chris Wilson
  2016-01-08 11:47     ` Tvrtko Ursulin
  2016-01-08 12:40   ` Tvrtko Ursulin
  2016-01-08 13:04   ` [PATCH v3 " Tvrtko Ursulin
  2 siblings, 2 replies; 124+ messages in thread
From: Chris Wilson @ 2016-01-08 11:40 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:47AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> VMA creation and GEM list management need the big lock.

No, this operation doesn't require locking.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator
  2016-01-08 11:29 ` [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator Tvrtko Ursulin
@ 2016-01-08 11:44   ` Chris Wilson
  2016-01-11  8:48     ` Daniel Vetter
  2016-01-08 13:29   ` Tvrtko Ursulin
  1 sibling, 1 reply; 124+ messages in thread
From: Chris Wilson @ 2016-01-08 11:44 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Daniel Vetter, Intel-gfx

On Fri, Jan 08, 2016 at 11:29:46AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> Purpose is to catch places which iterate the object VMA list
> without holding the big lock.
> 
> Implemented by open coding list_for_each_entry to make the
> macro compatible with existing call sites.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> +#define i915_gem_obj_for_each_vma(vma, obj) \
> +	for (WARN_ON_ONCE(!mutex_is_locked(&(obj)->base.dev->struct_mutex)), \

Let's not go around adding WARN(!mutex_locked) to GEM code when
lockdep_assert_held doesn't add overhead outside of testing.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock
  2016-01-08 11:40   ` Chris Wilson
@ 2016-01-08 11:45     ` Chris Wilson
  2016-01-08 11:47     ` Tvrtko Ursulin
  1 sibling, 0 replies; 124+ messages in thread
From: Chris Wilson @ 2016-01-08 11:45 UTC (permalink / raw)
  To: Tvrtko Ursulin, Intel-gfx

On Fri, Jan 08, 2016 at 11:40:56AM +0000, Chris Wilson wrote:
> On Fri, Jan 08, 2016 at 11:29:47AM +0000, Tvrtko Ursulin wrote:
> > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> > 
> > VMA creation and GEM list management need the big lock.
> 
> No, this operation doesn't require locking.

My bad, there's a vm->list tracking. I was thinking of the
obj->vma_list.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock
  2016-01-08 11:40   ` Chris Wilson
  2016-01-08 11:45     ` Chris Wilson
@ 2016-01-08 11:47     ` Tvrtko Ursulin
  2016-01-08 12:09       ` Chris Wilson
  1 sibling, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 11:47 UTC (permalink / raw)
  To: Chris Wilson, Intel-gfx


On 08/01/16 11:40, Chris Wilson wrote:
> On Fri, Jan 08, 2016 at 11:29:47AM +0000, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> VMA creation and GEM list management need the big lock.
>
> No, this operation doesn't require locking.

You can argue about positioning and such, but it is adding it to the 
bound and inactive list...

Tvrtko

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

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

* Re: [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock
  2016-01-08 11:47     ` Tvrtko Ursulin
@ 2016-01-08 12:09       ` Chris Wilson
  0 siblings, 0 replies; 124+ messages in thread
From: Chris Wilson @ 2016-01-08 12:09 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:47:03AM +0000, Tvrtko Ursulin wrote:
> 
> On 08/01/16 11:40, Chris Wilson wrote:
> >On Fri, Jan 08, 2016 at 11:29:47AM +0000, Tvrtko Ursulin wrote:
> >>From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> >>
> >>VMA creation and GEM list management need the big lock.
> >
> >No, this operation doesn't require locking.
> 
> You can argue about positioning and such, but it is adding it to the
> bound and inactive list...

Actually you raise a good point about the other stolen series,
namely we need to push this lock up to the caller since we have the
samme issue wit i915_gem_object_create_stolen() which I don't remember
that we fixed in valleyview_setup_pctx().
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock
  2016-01-08 11:29 ` [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock Tvrtko Ursulin
  2016-01-08 11:40   ` Chris Wilson
@ 2016-01-08 12:40   ` Tvrtko Ursulin
  2016-01-08 13:04   ` [PATCH v3 " Tvrtko Ursulin
  2 siblings, 0 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 12:40 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

VMA creation and GEM list management need the big lock.

v2:

Mutex unlock ended on the wrong path somehow. (0-day, Julia Lawall)

Not to mention drm_gem_object_unreference was there in existing
code with no mutex held.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_stolen.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c
index c384dc9c8a63..7c2f9127bb23 100644
--- a/drivers/gpu/drm/i915/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
@@ -670,6 +670,8 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev,
 	if (gtt_offset == I915_GTT_OFFSET_NONE)
 		return obj;
 
+	mutex_lock(&dev->struct_mutex);
+
 	vma = i915_gem_obj_lookup_or_create_vma(obj, ggtt);
 	if (IS_ERR(vma)) {
 		ret = PTR_ERR(vma);
@@ -698,9 +700,12 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev,
 	list_add_tail(&obj->global_list, &dev_priv->mm.bound_list);
 	i915_gem_object_pin_pages(obj);
 
+	mutex_unlock(&dev->struct_mutex);
+
 	return obj;
 
 err:
 	drm_gem_object_unreference(&obj->base);
+	mutex_unlock(&dev->struct_mutex);
 	return NULL;
 }
-- 
1.9.1

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

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

* [PATCH v3 08/13] drm/i915: GEM operations need to be done under the big lock
  2016-01-08 11:29 ` [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock Tvrtko Ursulin
  2016-01-08 11:40   ` Chris Wilson
  2016-01-08 12:40   ` Tvrtko Ursulin
@ 2016-01-08 13:04   ` Tvrtko Ursulin
  2 siblings, 0 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 13:04 UTC (permalink / raw)
  To: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

VMA creation and GEM list management need the big lock.

v2:

Mutex unlock ended on the wrong path somehow. (0-day, Julia Lawall)

Not to mention drm_gem_object_unreference was there in existing
code with no mutex held.

v3:

Some callers of i915_gem_object_create_stolen_for_preallocated
already hold the lock so move the mutex into the other caller
as well.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_stolen.c | 3 +++
 drivers/gpu/drm/i915/intel_display.c   | 8 ++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c
index c384dc9c8a63..a97a5e762c0f 100644
--- a/drivers/gpu/drm/i915/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
@@ -635,6 +635,9 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev,
 	if (!drm_mm_initialized(&dev_priv->mm.stolen))
 		return NULL;
 
+	if (WARN_ON_ONCE(!mutex_is_locked(&dev->struct_mutex)))
+		return NULL;
+
 	DRM_DEBUG_KMS("creating preallocated stolen object: stolen_offset=%x, gtt_offset=%x, size=%x\n",
 			stolen_offset, gtt_offset, size);
 
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index cb76054fe4c8..c502b7387509 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2534,12 +2534,16 @@ intel_alloc_initial_plane_obj(struct intel_crtc *crtc,
 	if (size_aligned * 2 > dev_priv->gtt.stolen_usable_size)
 		return false;
 
+	mutex_lock(&dev->struct_mutex);
+
 	obj = i915_gem_object_create_stolen_for_preallocated(dev,
 							     base_aligned,
 							     base_aligned,
 							     size_aligned);
-	if (!obj)
+	if (!obj) {
+		mutex_unlock(&dev->struct_mutex);
 		return false;
+	}
 
 	obj->tiling_mode = plane_config->tiling;
 	if (obj->tiling_mode == I915_TILING_X)
@@ -2552,12 +2556,12 @@ intel_alloc_initial_plane_obj(struct intel_crtc *crtc,
 	mode_cmd.modifier[0] = fb->modifier[0];
 	mode_cmd.flags = DRM_MODE_FB_MODIFIERS;
 
-	mutex_lock(&dev->struct_mutex);
 	if (intel_framebuffer_init(dev, to_intel_framebuffer(fb),
 				   &mode_cmd, obj)) {
 		DRM_DEBUG_KMS("intel fb init failed\n");
 		goto out_unref_obj;
 	}
+
 	mutex_unlock(&dev->struct_mutex);
 
 	DRM_DEBUG_KMS("initial plane fb obj %p\n", obj);
-- 
1.9.1

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

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

* Re: [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator
  2016-01-08 11:29 ` [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator Tvrtko Ursulin
  2016-01-08 11:44   ` Chris Wilson
@ 2016-01-08 13:29   ` Tvrtko Ursulin
  2016-01-11  8:43     ` Daniel Vetter
  1 sibling, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-08 13:29 UTC (permalink / raw)
  To: Intel-gfx; +Cc: Daniel Vetter


On 08/01/16 11:29, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> Purpose is to catch places which iterate the object VMA list
> without holding the big lock.
>
> Implemented by open coding list_for_each_entry to make the
> macro compatible with existing call sites.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>   drivers/gpu/drm/i915/i915_debugfs.c      |  8 ++++----
>   drivers/gpu/drm/i915/i915_drv.h          |  6 ++++++
>   drivers/gpu/drm/i915/i915_gem.c          | 24 ++++++++++++------------
>   drivers/gpu/drm/i915/i915_gem_gtt.c      |  2 +-
>   drivers/gpu/drm/i915/i915_gem_shrinker.c |  2 +-
>   drivers/gpu/drm/i915/i915_gpu_error.c    |  4 ++--
>   6 files changed, 26 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 714a45cf8a51..d7c2a3201161 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -117,7 +117,7 @@ static u64 i915_gem_obj_total_ggtt_size(struct drm_i915_gem_object *obj)
>   	u64 size = 0;
>   	struct i915_vma *vma;
>
> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
> +	i915_gem_obj_for_each_vma(vma, obj) {
>   		if (i915_is_ggtt(vma->vm) &&
>   		    drm_mm_node_allocated(&vma->node))
>   			size += vma->node.size;
> @@ -155,7 +155,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
>   		   obj->madv == I915_MADV_DONTNEED ? " purgeable" : "");
>   	if (obj->base.name)
>   		seq_printf(m, " (name: %d)", obj->base.name);
> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
> +	i915_gem_obj_for_each_vma(vma, obj) {
>   		if (vma->pin_count > 0)
>   			pin_count++;
>   	}
> @@ -164,7 +164,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
>   		seq_printf(m, " (display)");
>   	if (obj->fence_reg != I915_FENCE_REG_NONE)
>   		seq_printf(m, " (fence: %d)", obj->fence_reg);
> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
> +	i915_gem_obj_for_each_vma(vma, obj) {
>   		seq_printf(m, " (%sgtt offset: %08llx, size: %08llx",
>   			   i915_is_ggtt(vma->vm) ? "g" : "pp",
>   			   vma->node.start, vma->node.size);
> @@ -342,7 +342,7 @@ static int per_file_stats(int id, void *ptr, void *data)
>   		stats->shared += obj->base.size;
>
>   	if (USES_FULL_PPGTT(obj->base.dev)) {
> -		list_for_each_entry(vma, &obj->vma_list, vma_link) {
> +		i915_gem_obj_for_each_vma(vma, obj) {
>   			struct i915_hw_ppgtt *ppgtt;
>
>   			if (!drm_mm_node_allocated(&vma->node))
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index b77a5d84eac2..0406a020dfcc 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2852,6 +2852,12 @@ struct drm_i915_gem_object *i915_gem_object_create_from_data(
>   void i915_gem_free_object(struct drm_gem_object *obj);
>   void i915_gem_vma_destroy(struct i915_vma *vma);
>
> +#define i915_gem_obj_for_each_vma(vma, obj) \
> +	for (WARN_ON_ONCE(!mutex_is_locked(&(obj)->base.dev->struct_mutex)), \
> +	     vma = list_first_entry(&(obj)->vma_list, typeof(*vma), vma_link);\
> +	     &vma->vma_link != (&(obj)->vma_list); \
> +	     vma = list_next_entry(vma, vma_link))
> +


Unfortunately error capture is not happy with this approach. Can't even 
see that error capture attempts to grab the mutex anywhere.

So what? Drop the idea or add a "doing error capture" flag somewhere?

Regards,

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

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

* Re: [PATCH 01/13] drm/i915/bdw+: Replace list_del+list_add_tail with list_move_tail
  2016-01-08 11:29 ` [PATCH 01/13] drm/i915/bdw+: Replace list_del+list_add_tail with list_move_tail Tvrtko Ursulin
@ 2016-01-11  8:22   ` Daniel Vetter
  0 siblings, 0 replies; 124+ messages in thread
From: Daniel Vetter @ 2016-01-11  8:22 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:40AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> Same effect for slightly less source code and resulting binary.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/gpu/drm/i915/intel_lrc.c | 15 ++++++---------
>  1 file changed, 6 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 23839ff04e27..8b6071fcd743 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -431,9 +431,8 @@ static void execlists_context_unqueue(struct intel_engine_cs *ring)
>  			/* Same ctx: ignore first request, as second request
>  			 * will update tail past first request's workload */
>  			cursor->elsp_submitted = req0->elsp_submitted;
> -			list_del(&req0->execlist_link);
> -			list_add_tail(&req0->execlist_link,
> -				&ring->execlist_retired_req_list);
> +			list_move_tail(&req0->execlist_link,
> +				       &ring->execlist_retired_req_list);
>  			req0 = cursor;
>  		} else {
>  			req1 = cursor;
> @@ -485,9 +484,8 @@ static bool execlists_check_remove_request(struct intel_engine_cs *ring,
>  			     "Never submitted head request\n");
>  
>  			if (--head_req->elsp_submitted <= 0) {
> -				list_del(&head_req->execlist_link);
> -				list_add_tail(&head_req->execlist_link,
> -					&ring->execlist_retired_req_list);
> +				list_move_tail(&head_req->execlist_link,
> +					       &ring->execlist_retired_req_list);
>  				return true;

Aside: Some of this code is over-indented ...
-Daniel

>  			}
>  		}
> @@ -608,9 +606,8 @@ static int execlists_context_queue(struct drm_i915_gem_request *request)
>  		if (request->ctx == tail_req->ctx) {
>  			WARN(tail_req->elsp_submitted != 0,
>  				"More than 2 already-submitted reqs queued\n");
> -			list_del(&tail_req->execlist_link);
> -			list_add_tail(&tail_req->execlist_link,
> -				&ring->execlist_retired_req_list);
> +			list_move_tail(&tail_req->execlist_link,
> +				       &ring->execlist_retired_req_list);
>  		}
>  	}
>  
> -- 
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: [PATCH 02/13] drm/i915: Don't need a timer to wake us up
  2016-01-08 11:29 ` [PATCH 02/13] drm/i915: Don't need a timer to wake us up Tvrtko Ursulin
@ 2016-01-11  8:26   ` Daniel Vetter
  0 siblings, 0 replies; 124+ messages in thread
From: Daniel Vetter @ 2016-01-11  8:26 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:41AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> Looks like the sleeping loop in __i915_wait_request can be
> simplified by using io_schedule_timeout instead of setting
> up and destroying a timer.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>

io_schedule_timeout was only added in

commit 9cff8adeaa34b5d2802f03f89803da57856b3b72
Author: NeilBrown <neilb@suse.de>
Date:   Fri Feb 13 15:49:17 2015 +1100

    sched: Prevent recursion in io_schedule()

(well the EXPORT_SYMBOL for it), that was iirc why this was open-coded.
Please add this to your commit message.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  drivers/gpu/drm/i915/i915_gem.c | 28 ++++++++--------------------
>  1 file changed, 8 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 6c60e04fc09c..de98dc41fb9f 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1135,11 +1135,6 @@ i915_gem_check_wedge(struct i915_gpu_error *error,
>  	return 0;
>  }
>  
> -static void fake_irq(unsigned long data)
> -{
> -	wake_up_process((struct task_struct *)data);
> -}
> -
>  static bool missed_irq(struct drm_i915_private *dev_priv,
>  		       struct intel_engine_cs *ring)
>  {
> @@ -1291,7 +1286,7 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
>  	}
>  
>  	for (;;) {
> -		struct timer_list timer;
> +		long sched_timeout;
>  
>  		prepare_to_wait(&ring->irq_queue, &wait, state);
>  
> @@ -1321,21 +1316,14 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
>  			break;
>  		}
>  
> -		timer.function = NULL;
> -		if (timeout || missed_irq(dev_priv, ring)) {
> -			unsigned long expire;
> -
> -			setup_timer_on_stack(&timer, fake_irq, (unsigned long)current);
> -			expire = missed_irq(dev_priv, ring) ? jiffies + 1 : timeout_expire;
> -			mod_timer(&timer, expire);
> -		}
> -
> -		io_schedule();
> +		if (timeout)
> +			sched_timeout = timeout_expire - jiffies;
> +		else if (missed_irq(dev_priv, ring))
> +			sched_timeout = 1;
> +		else
> +			sched_timeout = MAX_SCHEDULE_TIMEOUT;
>  
> -		if (timer.function) {
> -			del_singleshot_timer_sync(&timer);
> -			destroy_timer_on_stack(&timer);
> -		}
> +		io_schedule_timeout(sched_timeout);
>  	}
>  	if (!irq_test_in_progress)
>  		ring->irq_put(ring);
> -- 
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: [PATCH 03/13] drm/i915: Avoid invariant conditionals in lrc interrupt handler
  2016-01-08 11:29 ` [PATCH 03/13] drm/i915: Avoid invariant conditionals in lrc interrupt handler Tvrtko Ursulin
@ 2016-01-11  8:29   ` Daniel Vetter
  2016-01-11  9:43     ` Tvrtko Ursulin
  0 siblings, 1 reply; 124+ messages in thread
From: Daniel Vetter @ 2016-01-11  8:29 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:42AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> There is no need to check on what Gen we are running on every
> interrupt and every command submission. We can instead set up
> some of that when engines are initialized, store it in the
> engine structure and use it directly at runtime.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_lrc.c        | 36 ++++++++++++++++++---------------
>  drivers/gpu/drm/i915/intel_ringbuffer.h |  2 ++
>  2 files changed, 22 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 8b6071fcd743..84977a6e6f3f 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -298,29 +298,15 @@ uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
>  				     struct intel_engine_cs *ring)
>  {
>  	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
> -	uint64_t desc;
> +	uint64_t desc = ring->ctx_desc_template;
>  	uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
>  			LRC_PPHWSP_PN * PAGE_SIZE;
>  
>  	WARN_ON(lrca & 0xFFFFFFFF00000FFFULL);
>  
> -	desc = GEN8_CTX_VALID;
> -	desc |= GEN8_CTX_ADDRESSING_MODE(dev) << GEN8_CTX_ADDRESSING_MODE_SHIFT;
> -	if (IS_GEN8(ctx_obj->base.dev))
> -		desc |= GEN8_CTX_L3LLC_COHERENT;
> -	desc |= GEN8_CTX_PRIVILEGE;
>  	desc |= lrca;
>  	desc |= (u64)intel_execlists_ctx_id(ctx_obj) << GEN8_CTX_ID_SHIFT;
>  
> -	/* TODO: WaDisableLiteRestore when we start using semaphore
> -	 * signalling between Command Streamers */
> -	/* desc |= GEN8_CTX_FORCE_RESTORE; */
> -
> -	/* WaEnableForceRestoreInCtxtDescForVCS:skl */
> -	/* WaEnableForceRestoreInCtxtDescForVCS:bxt */
> -	if (disable_lite_restore_wa(ring))
> -		desc |= GEN8_CTX_FORCE_RESTORE;
> -
>  	return desc;
>  }

tbh I'd go full monty and just cache the entire context descriptor.
-Daniel

>  
> @@ -556,7 +542,7 @@ void intel_lrc_irq_handler(struct intel_engine_cs *ring)
>  		}
>  	}
>  
> -	if (disable_lite_restore_wa(ring)) {
> +	if (ring->disable_lite_restore_wa) {
>  		/* Prevent a ctx to preempt itself */
>  		if ((status & GEN8_CTX_STATUS_ACTIVE_IDLE) &&
>  		    (submit_contexts != 0))
> @@ -1980,6 +1966,24 @@ static int logical_ring_init(struct drm_device *dev, struct intel_engine_cs *rin
>  		goto error;
>  	}
>  
> +	ring->disable_lite_restore_wa = disable_lite_restore_wa(ring);
> +
> +	ring->ctx_desc_template = GEN8_CTX_VALID;
> +	ring->ctx_desc_template |= GEN8_CTX_ADDRESSING_MODE(dev) <<
> +				   GEN8_CTX_ADDRESSING_MODE_SHIFT;
> +	if (IS_GEN8(dev))
> +		ring->ctx_desc_template |= GEN8_CTX_L3LLC_COHERENT;
> +	ring->ctx_desc_template |= GEN8_CTX_PRIVILEGE;
> +
> +	/* TODO: WaDisableLiteRestore when we start using semaphore
> +	 * signalling between Command Streamers */
> +	/* ring->ctx_desc_template |= GEN8_CTX_FORCE_RESTORE; */
> +
> +	/* WaEnableForceRestoreInCtxtDescForVCS:skl */
> +	/* WaEnableForceRestoreInCtxtDescForVCS:bxt */
> +	if (ring->disable_lite_restore_wa)
> +		ring->ctx_desc_template |= GEN8_CTX_FORCE_RESTORE;
> +
>  	return 0;
>  
>  error:
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
> index 49574ffe54bc..0b91a4b77359 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.h
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
> @@ -268,6 +268,8 @@ struct  intel_engine_cs {
>  	struct list_head execlist_queue;
>  	struct list_head execlist_retired_req_list;
>  	u8 next_context_status_buffer;
> +	bool disable_lite_restore_wa;
> +	u32 ctx_desc_template;
>  	u32             irq_keep_mask; /* bitmask for interrupts that should not be masked */
>  	int		(*emit_request)(struct drm_i915_gem_request *request);
>  	int		(*emit_flush)(struct drm_i915_gem_request *request,
> -- 
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: [PATCH 04/13] drm/i915: Fail engine initialization if LRCA is incorrectly aligned
  2016-01-08 11:29 ` [PATCH 04/13] drm/i915: Fail engine initialization if LRCA is incorrectly aligned Tvrtko Ursulin
@ 2016-01-11  8:31   ` Daniel Vetter
  2016-01-11 16:02     ` Dave Gordon
  0 siblings, 1 reply; 124+ messages in thread
From: Daniel Vetter @ 2016-01-11  8:31 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:43AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> LRCA can change only when it goes from unpinned to pinned so it
> makes sense to check its alignment at that point rather than at
> every batch buffer submission.
> 
> Furthermore, if we check it at pin time we can actually
> gracefuly fail the engine initialization rather than just
> spamming the logs at runtime with WARNs.
> 
> v2: Return ENODEV for bad alignment. (Chris Wilson)
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_lrc.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 84977a6e6f3f..ff146a15d395 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -302,8 +302,6 @@ uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
>  	uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
>  			LRC_PPHWSP_PN * PAGE_SIZE;
>  
> -	WARN_ON(lrca & 0xFFFFFFFF00000FFFULL);
> -
>  	desc |= lrca;
>  	desc |= (u64)intel_execlists_ctx_id(ctx_obj) << GEN8_CTX_ID_SHIFT;
>  
> @@ -1030,6 +1028,7 @@ static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
>  {
>  	struct drm_device *dev = ring->dev;
>  	struct drm_i915_private *dev_priv = dev->dev_private;
> +	u64 lrca;
>  	int ret = 0;
>  
>  	WARN_ON(!mutex_is_locked(&ring->dev->struct_mutex));
> @@ -1038,6 +1037,12 @@ static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
>  	if (ret)
>  		return ret;
>  
> +	lrca = i915_gem_obj_ggtt_offset(ctx_obj) + LRC_PPHWSP_PN * PAGE_SIZE;
> +	if (WARN_ON(lrca & 0xFFFFFFFF00000FFFULL)) {

Essentially this checks that it's page-aligned (which is a fundamental
assumption of how we place objects we depend upon everywhere) and that it
fits within the 4G hw limit of the global gtt (again we assume our code is
correct that way). tbh I'd just drop entirely, it's a useless check.
-Daniel

> +		ret = -ENODEV;
> +		goto unpin_ctx_obj;
> +	}
> +
>  	ret = intel_pin_and_map_ringbuffer_obj(ring->dev, ringbuf);
>  	if (ret)
>  		goto unpin_ctx_obj;
> -- 
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: [PATCH 05/13] drm/i915: Cache LRCA in the context
  2016-01-08 11:29 ` [PATCH 05/13] drm/i915: Cache LRCA in the context Tvrtko Ursulin
@ 2016-01-11  8:38   ` Daniel Vetter
  2016-01-11 19:41     ` Dave Gordon
  0 siblings, 1 reply; 124+ messages in thread
From: Daniel Vetter @ 2016-01-11  8:38 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:44AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> We are not allowed to call i915_gem_obj_ggtt_offset from irq
> context without the big kernel lock held.
> 
> LRCA lifetime is well defined so cache it so it can be looked up
> cheaply from the interrupt context and at command submission
> time.
> 
> v2: Added irq context reasoning to the commit message. (Daniel Vetter)
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

A i915_obj_for_each_vma macro with a
WARN_ON(!mutex_is_locked(dev->struct_mutex)) would be awesome to validate
this. Especially since this is by far not the only time I've seen this
bug. Needs to be a follow-up though to avoid stalling this fix.

> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 15 ++++++--------
>  drivers/gpu/drm/i915/i915_drv.h     |  1 +
>  drivers/gpu/drm/i915/intel_lrc.c    | 40 ++++++++++++++++---------------------
>  drivers/gpu/drm/i915/intel_lrc.h    |  3 ++-
>  4 files changed, 26 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 3b05bd189eab..714a45cf8a51 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1976,12 +1976,13 @@ static int i915_context_status(struct seq_file *m, void *unused)
>  }
>  
>  static void i915_dump_lrc_obj(struct seq_file *m,
> -			      struct intel_engine_cs *ring,
> -			      struct drm_i915_gem_object *ctx_obj)
> +			      struct intel_context *ctx,
> +			      struct intel_engine_cs *ring)
>  {
>  	struct page *page;
>  	uint32_t *reg_state;
>  	int j;
> +	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
>  	unsigned long ggtt_offset = 0;
>  
>  	if (ctx_obj == NULL) {
> @@ -1991,7 +1992,7 @@ static void i915_dump_lrc_obj(struct seq_file *m,
>  	}
>  
>  	seq_printf(m, "CONTEXT: %s %u\n", ring->name,
> -		   intel_execlists_ctx_id(ctx_obj));
> +		   intel_execlists_ctx_id(ctx, ring));
>  
>  	if (!i915_gem_obj_ggtt_bound(ctx_obj))
>  		seq_puts(m, "\tNot bound in GGTT\n");
> @@ -2040,8 +2041,7 @@ static int i915_dump_lrc(struct seq_file *m, void *unused)
>  	list_for_each_entry(ctx, &dev_priv->context_list, link) {
>  		for_each_ring(ring, dev_priv, i) {
>  			if (ring->default_context != ctx)
> -				i915_dump_lrc_obj(m, ring,
> -						  ctx->engine[i].state);
> +				i915_dump_lrc_obj(m, ctx, ring);
>  		}
>  	}
>  
> @@ -2115,11 +2115,8 @@ static int i915_execlists(struct seq_file *m, void *data)
>  
>  		seq_printf(m, "\t%d requests in queue\n", count);
>  		if (head_req) {
> -			struct drm_i915_gem_object *ctx_obj;
> -
> -			ctx_obj = head_req->ctx->engine[ring_id].state;
>  			seq_printf(m, "\tHead request id: %u\n",
> -				   intel_execlists_ctx_id(ctx_obj));
> +				   intel_execlists_ctx_id(head_req->ctx, ring));
>  			seq_printf(m, "\tHead request tail: %u\n",
>  				   head_req->tail);
>  		}
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 8cf655c6fc03..b77a5d84eac2 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -881,6 +881,7 @@ struct intel_context {
>  		struct drm_i915_gem_object *state;
>  		struct intel_ringbuffer *ringbuf;
>  		int pin_count;
> +		u32 lrca;

lrc_offset imo. Consistent with our other usage in the driver, and
actually readable. Please apply liberally everywhere else (I know that
bsepc calls it lrca, but we don't need to follow bad naming styles
blindly).

With that Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

>  	} engine[I915_NUM_RINGS];
>  
>  	struct list_head link;
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index ff146a15d395..ffe004de22b0 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -265,7 +265,8 @@ int intel_sanitize_enable_execlists(struct drm_device *dev, int enable_execlists
>  
>  /**
>   * intel_execlists_ctx_id() - get the Execlists Context ID
> - * @ctx_obj: Logical Ring Context backing object.
> + * @ctx: Context to get the ID for
> + * @ring: Engine to get the ID for
>   *
>   * Do not confuse with ctx->id! Unfortunately we have a name overload
>   * here: the old context ID we pass to userspace as a handler so that
> @@ -275,14 +276,12 @@ int intel_sanitize_enable_execlists(struct drm_device *dev, int enable_execlists
>   *
>   * Return: 20-bits globally unique context ID.
>   */
> -u32 intel_execlists_ctx_id(struct drm_i915_gem_object *ctx_obj)
> +u32 intel_execlists_ctx_id(struct intel_context *ctx,
> +			   struct intel_engine_cs *ring)
>  {
> -	u32 lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
> -			LRC_PPHWSP_PN * PAGE_SIZE;
> -
>  	/* LRCA is required to be 4K aligned so the more significant 20 bits
>  	 * are globally unique */
> -	return lrca >> 12;
> +	return ctx->engine[ring->id].lrca >> 12;
>  }
>  
>  static bool disable_lite_restore_wa(struct intel_engine_cs *ring)
> @@ -297,13 +296,11 @@ static bool disable_lite_restore_wa(struct intel_engine_cs *ring)
>  uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
>  				     struct intel_engine_cs *ring)
>  {
> -	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
> +	uint64_t lrca = ctx->engine[ring->id].lrca;
>  	uint64_t desc = ring->ctx_desc_template;
> -	uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
> -			LRC_PPHWSP_PN * PAGE_SIZE;
>  
>  	desc |= lrca;
> -	desc |= (u64)intel_execlists_ctx_id(ctx_obj) << GEN8_CTX_ID_SHIFT;
> +	desc |= (u64)intel_execlists_ctx_id(ctx, ring) << GEN8_CTX_ID_SHIFT;
>  
>  	return desc;
>  }
> @@ -461,9 +458,7 @@ static bool execlists_check_remove_request(struct intel_engine_cs *ring,
>  					    execlist_link);
>  
>  	if (head_req != NULL) {
> -		struct drm_i915_gem_object *ctx_obj =
> -				head_req->ctx->engine[ring->id].state;
> -		if (intel_execlists_ctx_id(ctx_obj) == request_id) {
> +		if (intel_execlists_ctx_id(head_req->ctx, ring) == request_id) {
>  			WARN(head_req->elsp_submitted == 0,
>  			     "Never submitted head request\n");
>  
> @@ -1023,15 +1018,17 @@ int logical_ring_flush_all_caches(struct drm_i915_gem_request *req)
>  }
>  
>  static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
> -		struct drm_i915_gem_object *ctx_obj,
> -		struct intel_ringbuffer *ringbuf)
> +				   struct intel_context *ctx)
>  {
>  	struct drm_device *dev = ring->dev;
>  	struct drm_i915_private *dev_priv = dev->dev_private;
> +	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
> +	struct intel_ringbuffer *ringbuf = ctx->engine[ring->id].ringbuf;
>  	u64 lrca;
> -	int ret = 0;
> +	int ret;
>  
>  	WARN_ON(!mutex_is_locked(&ring->dev->struct_mutex));
> +
>  	ret = i915_gem_obj_ggtt_pin(ctx_obj, GEN8_LR_CONTEXT_ALIGN,
>  			PIN_OFFSET_BIAS | GUC_WOPCM_TOP);
>  	if (ret)
> @@ -1047,6 +1044,7 @@ static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
>  	if (ret)
>  		goto unpin_ctx_obj;
>  
> +	ctx->engine[ring->id].lrca = lrca;
>  	ctx_obj->dirty = true;
>  
>  	/* Invalidate GuC TLB. */
> @@ -1065,11 +1063,9 @@ static int intel_lr_context_pin(struct drm_i915_gem_request *rq)
>  {
>  	int ret = 0;
>  	struct intel_engine_cs *ring = rq->ring;
> -	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
> -	struct intel_ringbuffer *ringbuf = rq->ringbuf;
>  
>  	if (rq->ctx->engine[ring->id].pin_count++ == 0) {
> -		ret = intel_lr_context_do_pin(ring, ctx_obj, ringbuf);
> +		ret = intel_lr_context_do_pin(ring, rq->ctx);
>  		if (ret)
>  			goto reset_pin_count;
>  	}
> @@ -1091,6 +1087,7 @@ void intel_lr_context_unpin(struct drm_i915_gem_request *rq)
>  		if (--rq->ctx->engine[ring->id].pin_count == 0) {
>  			intel_unpin_ringbuffer_obj(ringbuf);
>  			i915_gem_object_ggtt_unpin(ctx_obj);
> +			rq->ctx->engine[ring->id].lrca = 0;
>  		}
>  	}
>  }
> @@ -1960,10 +1957,7 @@ static int logical_ring_init(struct drm_device *dev, struct intel_engine_cs *rin
>  		goto error;
>  
>  	/* As this is the default context, always pin it */
> -	ret = intel_lr_context_do_pin(
> -			ring,
> -			ring->default_context->engine[ring->id].state,
> -			ring->default_context->engine[ring->id].ringbuf);
> +	ret = intel_lr_context_do_pin(ring, ring->default_context);
>  	if (ret) {
>  		DRM_ERROR(
>  			"Failed to pin and map ringbuffer %s: %d\n",
> diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h
> index de41ad6cd63d..f9db5f187d77 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.h
> +++ b/drivers/gpu/drm/i915/intel_lrc.h
> @@ -106,6 +106,8 @@ void intel_lr_context_reset(struct drm_device *dev,
>  			struct intel_context *ctx);
>  uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
>  				     struct intel_engine_cs *ring);
> +u32 intel_execlists_ctx_id(struct intel_context *ctx,
> +			   struct intel_engine_cs *ring);
>  
>  /* Execlists */
>  int intel_sanitize_enable_execlists(struct drm_device *dev, int enable_execlists);
> @@ -113,7 +115,6 @@ struct i915_execbuffer_params;
>  int intel_execlists_submission(struct i915_execbuffer_params *params,
>  			       struct drm_i915_gem_execbuffer2 *args,
>  			       struct list_head *vmas);
> -u32 intel_execlists_ctx_id(struct drm_i915_gem_object *ctx_obj);
>  
>  void intel_lrc_irq_handler(struct intel_engine_cs *ring);
>  void intel_execlists_retire_requests(struct intel_engine_cs *ring);
> -- 
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: [PATCH 06/13] drm/i915: Only grab timestamps when needed
  2016-01-08 11:29 ` [PATCH 06/13] drm/i915: Only grab timestamps when needed Tvrtko Ursulin
@ 2016-01-11  8:42   ` Daniel Vetter
  2016-01-11  9:45     ` Tvrtko Ursulin
  0 siblings, 1 reply; 124+ messages in thread
From: Daniel Vetter @ 2016-01-11  8:42 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:45AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> No need to call ktime_get_raw_ns twice per unlimited wait and can
> also elimate a local variable.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem.c | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index de98dc41fb9f..c4f69579eb7a 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1246,7 +1246,7 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
>  	int state = interruptible ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE;
>  	DEFINE_WAIT(wait);
>  	unsigned long timeout_expire;
> -	s64 before, now;
> +	s64 before = 0;

Is gcc really this dense? Should be easy for it to spot that both branches
depend upon the same condition. Please remove that assignment. With that
changed:

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

>  	int ret;
>  
>  	WARN(!intel_irqs_enabled(dev_priv), "IRQs disabled");
> @@ -1266,14 +1266,17 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
>  			return -ETIME;
>  
>  		timeout_expire = jiffies + nsecs_to_jiffies_timeout(*timeout);
> +
> +		/*
> +		 * Record current time in case interrupted by signal, or wedged.
> +		 */
> +		before = ktime_get_raw_ns();
>  	}
>  
>  	if (INTEL_INFO(dev_priv)->gen >= 6)
>  		gen6_rps_boost(dev_priv, rps, req->emitted_jiffies);
>  
> -	/* Record current time in case interrupted by signal, or wedged */
>  	trace_i915_gem_request_wait_begin(req);
> -	before = ktime_get_raw_ns();
>  
>  	/* Optimistic spin for the next jiffie before touching IRQs */
>  	ret = __i915_spin_request(req, state);
> @@ -1331,11 +1334,10 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
>  	finish_wait(&ring->irq_queue, &wait);
>  
>  out:
> -	now = ktime_get_raw_ns();
>  	trace_i915_gem_request_wait_end(req);
>  
>  	if (timeout) {
> -		s64 tres = *timeout - (now - before);
> +		s64 tres = *timeout - (ktime_get_raw_ns() - before);
>  
>  		*timeout = tres < 0 ? 0 : tres;
>  
> -- 
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator
  2016-01-08 13:29   ` Tvrtko Ursulin
@ 2016-01-11  8:43     ` Daniel Vetter
  2016-01-11  9:51       ` Tvrtko Ursulin
  0 siblings, 1 reply; 124+ messages in thread
From: Daniel Vetter @ 2016-01-11  8:43 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Daniel Vetter, Intel-gfx

On Fri, Jan 08, 2016 at 01:29:14PM +0000, Tvrtko Ursulin wrote:
> 
> On 08/01/16 11:29, Tvrtko Ursulin wrote:
> >From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> >
> >Purpose is to catch places which iterate the object VMA list
> >without holding the big lock.
> >
> >Implemented by open coding list_for_each_entry to make the
> >macro compatible with existing call sites.
> >
> >Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> >Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> >---
> >  drivers/gpu/drm/i915/i915_debugfs.c      |  8 ++++----
> >  drivers/gpu/drm/i915/i915_drv.h          |  6 ++++++
> >  drivers/gpu/drm/i915/i915_gem.c          | 24 ++++++++++++------------
> >  drivers/gpu/drm/i915/i915_gem_gtt.c      |  2 +-
> >  drivers/gpu/drm/i915/i915_gem_shrinker.c |  2 +-
> >  drivers/gpu/drm/i915/i915_gpu_error.c    |  4 ++--
> >  6 files changed, 26 insertions(+), 20 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> >index 714a45cf8a51..d7c2a3201161 100644
> >--- a/drivers/gpu/drm/i915/i915_debugfs.c
> >+++ b/drivers/gpu/drm/i915/i915_debugfs.c
> >@@ -117,7 +117,7 @@ static u64 i915_gem_obj_total_ggtt_size(struct drm_i915_gem_object *obj)
> >  	u64 size = 0;
> >  	struct i915_vma *vma;
> >
> >-	list_for_each_entry(vma, &obj->vma_list, vma_link) {
> >+	i915_gem_obj_for_each_vma(vma, obj) {
> >  		if (i915_is_ggtt(vma->vm) &&
> >  		    drm_mm_node_allocated(&vma->node))
> >  			size += vma->node.size;
> >@@ -155,7 +155,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
> >  		   obj->madv == I915_MADV_DONTNEED ? " purgeable" : "");
> >  	if (obj->base.name)
> >  		seq_printf(m, " (name: %d)", obj->base.name);
> >-	list_for_each_entry(vma, &obj->vma_list, vma_link) {
> >+	i915_gem_obj_for_each_vma(vma, obj) {
> >  		if (vma->pin_count > 0)
> >  			pin_count++;
> >  	}
> >@@ -164,7 +164,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
> >  		seq_printf(m, " (display)");
> >  	if (obj->fence_reg != I915_FENCE_REG_NONE)
> >  		seq_printf(m, " (fence: %d)", obj->fence_reg);
> >-	list_for_each_entry(vma, &obj->vma_list, vma_link) {
> >+	i915_gem_obj_for_each_vma(vma, obj) {
> >  		seq_printf(m, " (%sgtt offset: %08llx, size: %08llx",
> >  			   i915_is_ggtt(vma->vm) ? "g" : "pp",
> >  			   vma->node.start, vma->node.size);
> >@@ -342,7 +342,7 @@ static int per_file_stats(int id, void *ptr, void *data)
> >  		stats->shared += obj->base.size;
> >
> >  	if (USES_FULL_PPGTT(obj->base.dev)) {
> >-		list_for_each_entry(vma, &obj->vma_list, vma_link) {
> >+		i915_gem_obj_for_each_vma(vma, obj) {
> >  			struct i915_hw_ppgtt *ppgtt;
> >
> >  			if (!drm_mm_node_allocated(&vma->node))
> >diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> >index b77a5d84eac2..0406a020dfcc 100644
> >--- a/drivers/gpu/drm/i915/i915_drv.h
> >+++ b/drivers/gpu/drm/i915/i915_drv.h
> >@@ -2852,6 +2852,12 @@ struct drm_i915_gem_object *i915_gem_object_create_from_data(
> >  void i915_gem_free_object(struct drm_gem_object *obj);
> >  void i915_gem_vma_destroy(struct i915_vma *vma);
> >
> >+#define i915_gem_obj_for_each_vma(vma, obj) \
> >+	for (WARN_ON_ONCE(!mutex_is_locked(&(obj)->base.dev->struct_mutex)), \
> >+	     vma = list_first_entry(&(obj)->vma_list, typeof(*vma), vma_link);\
> >+	     &vma->vma_link != (&(obj)->vma_list); \
> >+	     vma = list_next_entry(vma, vma_link))
> >+
> 
> 
> Unfortunately error capture is not happy with this approach. Can't even see
> that error capture attempts to grab the mutex anywhere.
> 
> So what? Drop the idea or add a "doing error capture" flag somewhere?

Fix the bugs. Not surprise at all that we've screwed this up all over the
place ;-) Afaics modeset code isn't much better either ...
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator
  2016-01-08 11:44   ` Chris Wilson
@ 2016-01-11  8:48     ` Daniel Vetter
  0 siblings, 0 replies; 124+ messages in thread
From: Daniel Vetter @ 2016-01-11  8:48 UTC (permalink / raw)
  To: Chris Wilson, Tvrtko Ursulin, Intel-gfx, Daniel Vetter

On Fri, Jan 08, 2016 at 11:44:04AM +0000, Chris Wilson wrote:
> On Fri, Jan 08, 2016 at 11:29:46AM +0000, Tvrtko Ursulin wrote:
> > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> > 
> > Purpose is to catch places which iterate the object VMA list
> > without holding the big lock.
> > 
> > Implemented by open coding list_for_each_entry to make the
> > macro compatible with existing call sites.
> > 
> > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > +#define i915_gem_obj_for_each_vma(vma, obj) \
> > +	for (WARN_ON_ONCE(!mutex_is_locked(&(obj)->base.dev->struct_mutex)), \
> 
> Let's not go around adding WARN(!mutex_locked) to GEM code when
> lockdep_assert_held doesn't add overhead outside of testing.

Hm yeah I still prefere WARN_ON for modeset code (where it doesn't matter)
because of increased test coverage. But for gem it indeed makes more sense
to only do this for lockdep-enabled builds. CI runs with lockdep, so we're
good.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 11/13] drm/i915: Cache ringbuffer GTT address
  2016-01-08 11:29 ` [PATCH 11/13] drm/i915: Cache ringbuffer GTT address Tvrtko Ursulin
  2016-01-08 11:37   ` Chris Wilson
@ 2016-01-11  8:49   ` Daniel Vetter
  2016-01-12 11:42     ` [PATCH v3 3/7] drm/i915: Cache ringbuffer GTT VMA Tvrtko Ursulin
  2016-01-11 16:16   ` [PATCH 11/13] drm/i915: Cache ringbuffer GTT address Dave Gordon
  2 siblings, 1 reply; 124+ messages in thread
From: Daniel Vetter @ 2016-01-11  8:49 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:50AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> Purpose is to avoid calling i915_gem_obj_ggtt_offset from the
> interrupt context without the big lock held.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_lrc.c        | 3 +--
>  drivers/gpu/drm/i915/intel_ringbuffer.c | 3 +++
>  drivers/gpu/drm/i915/intel_ringbuffer.h | 1 +
>  3 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 5b3795815d8e..70c511ef6b12 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -345,7 +345,6 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
>  	struct intel_engine_cs *ring = rq->ring;
>  	struct i915_hw_ppgtt *ppgtt = rq->ctx->ppgtt;
>  	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
> -	struct drm_i915_gem_object *rb_obj = rq->ringbuf->obj;
>  	struct page *page;
>  	uint32_t *reg_state;
>  
> @@ -355,7 +354,7 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
>  	reg_state = kmap_atomic(page);
>  
>  	reg_state[CTX_RING_TAIL+1] = rq->tail;
> -	reg_state[CTX_RING_BUFFER_START+1] = i915_gem_obj_ggtt_offset(rb_obj);
> +	reg_state[CTX_RING_BUFFER_START+1] = rq->ringbuf->gtt_start;
>  
>  	if (ppgtt && !USES_FULL_48BIT_PPGTT(ppgtt->base.dev)) {
>  		/* True 32b PPGTT with dynamic page allocation: update PDP
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index 339701d7a9a5..9094ce254125 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -1988,6 +1988,7 @@ void intel_unpin_ringbuffer_obj(struct intel_ringbuffer *ringbuf)
>  	else
>  		iounmap(ringbuf->virtual_start);
>  	ringbuf->virtual_start = NULL;
> +	ringbuf->gtt_start = 0;
>  	i915_gem_object_ggtt_unpin(ringbuf->obj);
>  }
>  
> @@ -2054,6 +2055,8 @@ int intel_pin_and_map_ringbuffer_obj(struct drm_device *dev,
>  		}
>  	}
>  
> +	ringbuf->gtt_start = i915_gem_obj_ggtt_offset(obj);
> +
>  	return 0;
>  }
>  
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
> index 0b91a4b77359..25d3716228ae 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.h
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
> @@ -98,6 +98,7 @@ struct intel_ring_hangcheck {
>  struct intel_ringbuffer {
>  	struct drm_i915_gem_object *obj;
>  	void __iomem *virtual_start;
> +	u64 gtt_start;

gtt_offset, because consistency. Or vma, as Chris suggested.
-Daniel

>  
>  	struct intel_engine_cs *ring;
>  	struct list_head link;
> -- 
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: [PATCH 09/13] drm/i915: Remove two impossible asserts
  2016-01-08 11:29 ` [PATCH 09/13] drm/i915: Remove two impossible asserts Tvrtko Ursulin
@ 2016-01-11  8:49   ` Daniel Vetter
  0 siblings, 0 replies; 124+ messages in thread
From: Daniel Vetter @ 2016-01-11  8:49 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Intel-gfx

On Fri, Jan 08, 2016 at 11:29:48AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> Engine initialization would have failed if those two weren't
> pinned and calling i915_gem_obj_is_pinned is illegal from irq
> context without the big lock held.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  drivers/gpu/drm/i915/intel_lrc.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index ffe004de22b0..5b3795815d8e 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -350,8 +350,6 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
>  	uint32_t *reg_state;
>  
>  	BUG_ON(!ctx_obj);
> -	WARN_ON(!i915_gem_obj_is_pinned(ctx_obj));
> -	WARN_ON(!i915_gem_obj_is_pinned(rb_obj));
>  
>  	page = i915_gem_object_get_dirty_page(ctx_obj, LRC_STATE_PN);
>  	reg_state = kmap_atomic(page);
> -- 
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: [PATCH 03/13] drm/i915: Avoid invariant conditionals in lrc interrupt handler
  2016-01-11  8:29   ` Daniel Vetter
@ 2016-01-11  9:43     ` Tvrtko Ursulin
  0 siblings, 0 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-11  9:43 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Intel-gfx


On 11/01/16 08:29, Daniel Vetter wrote:
> On Fri, Jan 08, 2016 at 11:29:42AM +0000, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> There is no need to check on what Gen we are running on every
>> interrupt and every command submission. We can instead set up
>> some of that when engines are initialized, store it in the
>> engine structure and use it directly at runtime.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> ---
>>   drivers/gpu/drm/i915/intel_lrc.c        | 36 ++++++++++++++++++---------------
>>   drivers/gpu/drm/i915/intel_ringbuffer.h |  2 ++
>>   2 files changed, 22 insertions(+), 16 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
>> index 8b6071fcd743..84977a6e6f3f 100644
>> --- a/drivers/gpu/drm/i915/intel_lrc.c
>> +++ b/drivers/gpu/drm/i915/intel_lrc.c
>> @@ -298,29 +298,15 @@ uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
>>   				     struct intel_engine_cs *ring)
>>   {
>>   	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
>> -	uint64_t desc;
>> +	uint64_t desc = ring->ctx_desc_template;
>>   	uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
>>   			LRC_PPHWSP_PN * PAGE_SIZE;
>>
>>   	WARN_ON(lrca & 0xFFFFFFFF00000FFFULL);
>>
>> -	desc = GEN8_CTX_VALID;
>> -	desc |= GEN8_CTX_ADDRESSING_MODE(dev) << GEN8_CTX_ADDRESSING_MODE_SHIFT;
>> -	if (IS_GEN8(ctx_obj->base.dev))
>> -		desc |= GEN8_CTX_L3LLC_COHERENT;
>> -	desc |= GEN8_CTX_PRIVILEGE;
>>   	desc |= lrca;
>>   	desc |= (u64)intel_execlists_ctx_id(ctx_obj) << GEN8_CTX_ID_SHIFT;
>>
>> -	/* TODO: WaDisableLiteRestore when we start using semaphore
>> -	 * signalling between Command Streamers */
>> -	/* desc |= GEN8_CTX_FORCE_RESTORE; */
>> -
>> -	/* WaEnableForceRestoreInCtxtDescForVCS:skl */
>> -	/* WaEnableForceRestoreInCtxtDescForVCS:bxt */
>> -	if (disable_lite_restore_wa(ring))
>> -		desc |= GEN8_CTX_FORCE_RESTORE;
>> -
>>   	return desc;
>>   }
>
> tbh I'd go full monty and just cache the entire context descriptor.

Yeah you're right - this was more a consequence of me learning about 
this code as making small cleanups.

Regards,

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
                   ` (13 preceding siblings ...)
  2016-01-08 11:38 ` [PATCH v2 00/13] Misc cleanups and locking fixes Chris Wilson
@ 2016-01-11  9:44 ` Patchwork
  14 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-11  9:44 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-gfx

== Summary ==

Built on ff88655b3a5467bbc3be8c67d3e05ebf182557d3 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest

Test gem_basic:
        Subgroup create-close:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_cpu_reloc:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_ctx_param_basic:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup invalid-param-set:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup non-root-set-no-zeromap:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup root-set-no-zeromap-disabled:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap_gtt:
        Subgroup basic-read:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup basic-write:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
Test kms_addfb_basic:
        Subgroup addfb25-modifier-no-flag:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup addfb25-x-tiled-mismatch:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup addfb25-yf-tiled:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-1024:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-63:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-999:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup clobberred-modifier:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup too-high:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup too-wide:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup unused-offsets:
                pass       -> DMESG-WARN (skl-i7k-2)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                dmesg-warn -> PASS       (ilk-hp8440p)
        Subgroup basic-plain-flip:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test kms_pipe_crc_basic:
        Subgroup hang-read-crc-pipe-a:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (bdw-ultra)
                pass       -> DMESG-WARN (skl-i7k-2)
                pass       -> DMESG-WARN (byt-nuc)
                pass       -> DMESG-WARN (snb-x220t)
                pass       -> DMESG-WARN (snb-dellxps)
                pass       -> DMESG-WARN (hsw-brixbox)
                pass       -> DMESG-WARN (ilk-hp8440p)
        Subgroup nonblocking-crc-pipe-a-frame-sequence:
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup read-crc-pipe-b:
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test prime_self_import:
        Subgroup basic-with_two_bos:
                pass       -> DMESG-WARN (skl-i7k-2)

bdw-ultra        total:138  pass:129  dwarn:3   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:141  pass:113  dwarn:4   dfail:0   fail:0   skip:24 
byt-nuc          total:141  pass:117  dwarn:9   dfail:0   fail:0   skip:15 
hsw-brixbox      total:141  pass:132  dwarn:2   dfail:0   fail:0   skip:7  
ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
skl-i5k-2        total:141  pass:130  dwarn:3   dfail:0   fail:0   skip:8  
skl-i7k-2        total:141  pass:106  dwarn:22  dfail:4   fail:0   skip:8  
snb-dellxps      total:141  pass:121  dwarn:6   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:121  dwarn:6   dfail:0   fail:1   skip:13 

HANGED hsw-gt2 in igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c

Results at /archive/results/CI_IGT_test/Patchwork_1115/

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

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

* Re: [PATCH 06/13] drm/i915: Only grab timestamps when needed
  2016-01-11  8:42   ` Daniel Vetter
@ 2016-01-11  9:45     ` Tvrtko Ursulin
  0 siblings, 0 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-11  9:45 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Intel-gfx


On 11/01/16 08:42, Daniel Vetter wrote:
> On Fri, Jan 08, 2016 at 11:29:45AM +0000, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> No need to call ktime_get_raw_ns twice per unlimited wait and can
>> also elimate a local variable.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> ---
>>   drivers/gpu/drm/i915/i915_gem.c | 12 +++++++-----
>>   1 file changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
>> index de98dc41fb9f..c4f69579eb7a 100644
>> --- a/drivers/gpu/drm/i915/i915_gem.c
>> +++ b/drivers/gpu/drm/i915/i915_gem.c
>> @@ -1246,7 +1246,7 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
>>   	int state = interruptible ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE;
>>   	DEFINE_WAIT(wait);
>>   	unsigned long timeout_expire;
>> -	s64 before, now;
>> +	s64 before = 0;
>
> Is gcc really this dense? Should be easy for it to spot that both branches
> depend upon the same condition. Please remove that assignment. With that
> changed:
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

It is this dense, at least gcc 4.8.4 on my machine. :(

Do you want to remove it regardless of the warning?

Rrgards,

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

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

* Re: [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator
  2016-01-11  8:43     ` Daniel Vetter
@ 2016-01-11  9:51       ` Tvrtko Ursulin
  2016-01-12 16:19         ` Daniel Vetter
  0 siblings, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-11  9:51 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Daniel Vetter, Intel-gfx


On 11/01/16 08:43, Daniel Vetter wrote:
> On Fri, Jan 08, 2016 at 01:29:14PM +0000, Tvrtko Ursulin wrote:
>>
>> On 08/01/16 11:29, Tvrtko Ursulin wrote:
>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>
>>> Purpose is to catch places which iterate the object VMA list
>>> without holding the big lock.
>>>
>>> Implemented by open coding list_for_each_entry to make the
>>> macro compatible with existing call sites.
>>>
>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>>> ---
>>>   drivers/gpu/drm/i915/i915_debugfs.c      |  8 ++++----
>>>   drivers/gpu/drm/i915/i915_drv.h          |  6 ++++++
>>>   drivers/gpu/drm/i915/i915_gem.c          | 24 ++++++++++++------------
>>>   drivers/gpu/drm/i915/i915_gem_gtt.c      |  2 +-
>>>   drivers/gpu/drm/i915/i915_gem_shrinker.c |  2 +-
>>>   drivers/gpu/drm/i915/i915_gpu_error.c    |  4 ++--
>>>   6 files changed, 26 insertions(+), 20 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>>> index 714a45cf8a51..d7c2a3201161 100644
>>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
>>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>>> @@ -117,7 +117,7 @@ static u64 i915_gem_obj_total_ggtt_size(struct drm_i915_gem_object *obj)
>>>   	u64 size = 0;
>>>   	struct i915_vma *vma;
>>>
>>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>> +	i915_gem_obj_for_each_vma(vma, obj) {
>>>   		if (i915_is_ggtt(vma->vm) &&
>>>   		    drm_mm_node_allocated(&vma->node))
>>>   			size += vma->node.size;
>>> @@ -155,7 +155,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
>>>   		   obj->madv == I915_MADV_DONTNEED ? " purgeable" : "");
>>>   	if (obj->base.name)
>>>   		seq_printf(m, " (name: %d)", obj->base.name);
>>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>> +	i915_gem_obj_for_each_vma(vma, obj) {
>>>   		if (vma->pin_count > 0)
>>>   			pin_count++;
>>>   	}
>>> @@ -164,7 +164,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
>>>   		seq_printf(m, " (display)");
>>>   	if (obj->fence_reg != I915_FENCE_REG_NONE)
>>>   		seq_printf(m, " (fence: %d)", obj->fence_reg);
>>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>> +	i915_gem_obj_for_each_vma(vma, obj) {
>>>   		seq_printf(m, " (%sgtt offset: %08llx, size: %08llx",
>>>   			   i915_is_ggtt(vma->vm) ? "g" : "pp",
>>>   			   vma->node.start, vma->node.size);
>>> @@ -342,7 +342,7 @@ static int per_file_stats(int id, void *ptr, void *data)
>>>   		stats->shared += obj->base.size;
>>>
>>>   	if (USES_FULL_PPGTT(obj->base.dev)) {
>>> -		list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>> +		i915_gem_obj_for_each_vma(vma, obj) {
>>>   			struct i915_hw_ppgtt *ppgtt;
>>>
>>>   			if (!drm_mm_node_allocated(&vma->node))
>>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>>> index b77a5d84eac2..0406a020dfcc 100644
>>> --- a/drivers/gpu/drm/i915/i915_drv.h
>>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>>> @@ -2852,6 +2852,12 @@ struct drm_i915_gem_object *i915_gem_object_create_from_data(
>>>   void i915_gem_free_object(struct drm_gem_object *obj);
>>>   void i915_gem_vma_destroy(struct i915_vma *vma);
>>>
>>> +#define i915_gem_obj_for_each_vma(vma, obj) \
>>> +	for (WARN_ON_ONCE(!mutex_is_locked(&(obj)->base.dev->struct_mutex)), \
>>> +	     vma = list_first_entry(&(obj)->vma_list, typeof(*vma), vma_link);\
>>> +	     &vma->vma_link != (&(obj)->vma_list); \
>>> +	     vma = list_next_entry(vma, vma_link))
>>> +
>>
>>
>> Unfortunately error capture is not happy with this approach. Can't even see
>> that error capture attempts to grab the mutex anywhere.
>>
>> So what? Drop the idea or add a "doing error capture" flag somewhere?
> 
> Fix the bugs. Not surprise at all that we've screwed this up all over the
> place ;-) Afaics modeset code isn't much better either ...

Ok I'll drop this patch then since the series contains fixes to all but one
related issues. The remaining one is then:

[   17.370366] ------------[ cut here ]------------
[   17.375633] WARNING: CPU: 0 PID: 1128 at drivers/gpu/drm/i915/i915_gem.c:5166 i915_gem_obj_ggtt_offset_view+0x10f/0x120 [i915]()
[   17.388879] WARN_ON_ONCE(!mutex_is_locked(&(o)->base.dev->struct_mutex))
[   17.396364] Modules linked in: hid_generic usbhid coretemp asix usbnet libphy mii i915 gpio_lynxpoint i2c_hid hid video i2c_algo_bit drm_kms_helper acpi_pad drm lpc_ich mfd_core nls_iso8859_1 e1000e ptp ahci libahci pps_core
[   17.419484] CPU: 0 PID: 1128 Comm: Xorg Tainted: G     U          4.4.0-rc8-160107+ #105
[   17.428771] Hardware name: Intel Corporation Broadwell Client platform/WhiteTip Mountain 1, BIOS BDW-E1R1.86C.0080.R01.1406120446 06/12/2014
[   17.443161]  ffffffffa0227790 ffff8800a98439b8 ffffffff81280d82 ffff8800a9843a00
[   17.451677]  ffff8800a98439f0 ffffffff81049c8c ffff8801495d0000 ffff8800aa934900
[   17.460166]  ffff8801495d8668 ffffffffa0242520 ffff8800aacea000 ffff8800a9843a50
[   17.468674] Call Trace:
[   17.471470]  [<ffffffff81280d82>] dump_stack+0x4b/0x79
[   17.477355]  [<ffffffff81049c8c>] warn_slowpath_common+0x7c/0xc0
[   17.484255]  [<ffffffff81049d17>] warn_slowpath_fmt+0x47/0x50
[   17.490869]  [<ffffffffa018f7ef>] i915_gem_obj_ggtt_offset_view+0x10f/0x120 [i915]
[   17.499572]  [<ffffffffa01a7290>] ? gen9_write8+0x2d0/0x2d0 [i915]
[   17.506663]  [<ffffffffa01bdbfe>] ironlake_update_primary_plane+0x1ee/0x3a0 [i915]
[   17.515358]  [<ffffffffa01ace1f>] intel_plane_atomic_update+0x5f/0x70 [i915]
[   17.523391]  [<ffffffffa00ef122>] drm_atomic_helper_commit_planes_on_crtc+0x142/0x230 [drm_kms_helper]
[   17.534063]  [<ffffffffa01c1744>] intel_atomic_commit+0x424/0x2270 [i915]
[   17.541763]  [<ffffffff814ee04a>] ? __ww_mutex_lock+0x4a/0x82
[   17.548355]  [<ffffffffa0097edb>] ? drm_atomic_check_only+0x12b/0x5e0 [drm]
[   17.556352]  [<ffffffffa0097a07>] ? drm_atomic_set_crtc_for_connector+0x77/0xf0 [drm]
[   17.565346]  [<ffffffffa00983c2>] drm_atomic_commit+0x32/0x50 [drm]
[   17.572553]  [<ffffffffa00ef782>] drm_atomic_helper_set_config+0x72/0xb0 [drm_kms_helper]
[   17.581954]  [<ffffffffa0088e8f>] drm_mode_set_config_internal+0x5f/0x100 [drm]
[   17.590313]  [<ffffffffa008cdc8>] drm_mode_setcrtc+0xd8/0x500 [drm]
[   17.597491]  [<ffffffffa007f5d8>] drm_ioctl+0x258/0x4f0 [drm]
[   17.604065]  [<ffffffff810c34ac>] ? unlock_page+0x4c/0x50
[   17.610245]  [<ffffffffa008ccf0>] ? drm_mode_setplane+0x1c0/0x1c0 [drm]
[   17.617844]  [<ffffffff8111597d>] do_vfs_ioctl+0x2cd/0x4a0
[   17.624137]  [<ffffffff81052572>] ? recalc_sigpending+0x12/0x40
[   17.630943]  [<ffffffff8111eb32>] ? __fget+0x72/0xb0
[   17.636645]  [<ffffffff81115b8c>] SyS_ioctl+0x3c/0x70
[   17.642448]  [<ffffffff81055301>] ? SyS_rt_sigprocmask+0x81/0xa0
[   17.649334]  [<ffffffff814f0017>] entry_SYSCALL_64_fastpath+0x12/0x6a
[   17.656740] ---[ end trace 3f29190006c97826 ]---

Would you like a BZ for this or maybe it is known already?

Regards,

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

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

* Re: [PATCH 04/13] drm/i915: Fail engine initialization if LRCA is incorrectly aligned
  2016-01-11  8:31   ` Daniel Vetter
@ 2016-01-11 16:02     ` Dave Gordon
  2016-01-11 23:31       ` Chris Wilson
  0 siblings, 1 reply; 124+ messages in thread
From: Dave Gordon @ 2016-01-11 16:02 UTC (permalink / raw)
  To: Daniel Vetter, Tvrtko Ursulin; +Cc: Intel-gfx

On 11/01/16 08:31, Daniel Vetter wrote:
> On Fri, Jan 08, 2016 at 11:29:43AM +0000, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> LRCA can change only when it goes from unpinned to pinned so it
>> makes sense to check its alignment at that point rather than at
>> every batch buffer submission.
>>
>> Furthermore, if we check it at pin time we can actually
>> gracefuly fail the engine initialization rather than just
>> spamming the logs at runtime with WARNs.
>>
>> v2: Return ENODEV for bad alignment. (Chris Wilson)
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> ---
>>   drivers/gpu/drm/i915/intel_lrc.c | 9 +++++++--
>>   1 file changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
>> index 84977a6e6f3f..ff146a15d395 100644
>> --- a/drivers/gpu/drm/i915/intel_lrc.c
>> +++ b/drivers/gpu/drm/i915/intel_lrc.c
>> @@ -302,8 +302,6 @@ uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
>>   	uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
>>   			LRC_PPHWSP_PN * PAGE_SIZE;
>>
>> -	WARN_ON(lrca & 0xFFFFFFFF00000FFFULL);
>> -
>>   	desc |= lrca;
>>   	desc |= (u64)intel_execlists_ctx_id(ctx_obj) << GEN8_CTX_ID_SHIFT;
>>
>> @@ -1030,6 +1028,7 @@ static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
>>   {
>>   	struct drm_device *dev = ring->dev;
>>   	struct drm_i915_private *dev_priv = dev->dev_private;
>> +	u64 lrca;
>>   	int ret = 0;
>>
>>   	WARN_ON(!mutex_is_locked(&ring->dev->struct_mutex));
>> @@ -1038,6 +1037,12 @@ static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
>>   	if (ret)
>>   		return ret;
>>
>> +	lrca = i915_gem_obj_ggtt_offset(ctx_obj) + LRC_PPHWSP_PN * PAGE_SIZE;
>> +	if (WARN_ON(lrca & 0xFFFFFFFF00000FFFULL)) {
>
> Essentially this checks that it's page-aligned (which is a fundamental
> assumption of how we place objects we depend upon everywhere) and that it
> fits within the 4G hw limit of the global gtt (again we assume our code is
> correct that way). tbh I'd just drop entirely, it's a useless check.
> -Daniel

IIRC the original version of this WARN (in intel_lr_context_descriptor()
above) was added with the GuC submission code, because the context 
descriptor as used in execlist code is a 64-bit value, but the GuC 
requires that all the unique stuff fits in those 20 unmasked bits of a 
32-bit value, with the low 12 bits being used for flags. So we wanted to 
check that we never got a context ID that couldn't be pruned down to 
just those 20 bits without losing information. It's never been seen to 
happen since GuC development finished, so we can reasonably lose the 
check now.

Unless anyone wants to be prepared for the expansion of the GTT beyond 4Gb!

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

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

* Re: [PATCH 11/13] drm/i915: Cache ringbuffer GTT address
  2016-01-08 11:29 ` [PATCH 11/13] drm/i915: Cache ringbuffer GTT address Tvrtko Ursulin
  2016-01-08 11:37   ` Chris Wilson
  2016-01-11  8:49   ` Daniel Vetter
@ 2016-01-11 16:16   ` Dave Gordon
  2016-01-11 17:44     ` Tvrtko Ursulin
  2 siblings, 1 reply; 124+ messages in thread
From: Dave Gordon @ 2016-01-11 16:16 UTC (permalink / raw)
  To: Tvrtko Ursulin, Intel-gfx

On 08/01/16 11:29, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> Purpose is to avoid calling i915_gem_obj_ggtt_offset from the
> interrupt context without the big lock held.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
>   drivers/gpu/drm/i915/intel_lrc.c        | 3 +--
>   drivers/gpu/drm/i915/intel_ringbuffer.c | 3 +++
>   drivers/gpu/drm/i915/intel_ringbuffer.h | 1 +
>   3 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 5b3795815d8e..70c511ef6b12 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -345,7 +345,6 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
>   	struct intel_engine_cs *ring = rq->ring;
>   	struct i915_hw_ppgtt *ppgtt = rq->ctx->ppgtt;
>   	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
> -	struct drm_i915_gem_object *rb_obj = rq->ringbuf->obj;
>   	struct page *page;
>   	uint32_t *reg_state;
>
> @@ -355,7 +354,7 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
>   	reg_state = kmap_atomic(page);
>
>   	reg_state[CTX_RING_TAIL+1] = rq->tail;
> -	reg_state[CTX_RING_BUFFER_START+1] = i915_gem_obj_ggtt_offset(rb_obj);
> +	reg_state[CTX_RING_BUFFER_START+1] = rq->ringbuf->gtt_start;
>
>   	if (ppgtt && !USES_FULL_48BIT_PPGTT(ppgtt->base.dev)) {
>   		/* True 32b PPGTT with dynamic page allocation: update PDP
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index 339701d7a9a5..9094ce254125 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -1988,6 +1988,7 @@ void intel_unpin_ringbuffer_obj(struct intel_ringbuffer *ringbuf)
>   	else
>   		iounmap(ringbuf->virtual_start);
>   	ringbuf->virtual_start = NULL;
> +	ringbuf->gtt_start = 0;

Zero isn't an invalid GTT address (although it does cause confusion).
Maybe we should define a suitable value to indicate not-an-address?
Anything with low bits set, or above 4Gb, is not valid, so perhaps:

#define	I915_GTT_BAD_ADDRESS		(~(u64)0)

.Dave.

>   	i915_gem_object_ggtt_unpin(ringbuf->obj);
>   }
>
> @@ -2054,6 +2055,8 @@ int intel_pin_and_map_ringbuffer_obj(struct drm_device *dev,
>   		}
>   	}
>
> +	ringbuf->gtt_start = i915_gem_obj_ggtt_offset(obj);
> +
>   	return 0;
>   }
>
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
> index 0b91a4b77359..25d3716228ae 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.h
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
> @@ -98,6 +98,7 @@ struct intel_ring_hangcheck {
>   struct intel_ringbuffer {
>   	struct drm_i915_gem_object *obj;
>   	void __iomem *virtual_start;
> +	u64 gtt_start;
>
>   	struct intel_engine_cs *ring;
>   	struct list_head link;
>

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

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

* Re: [PATCH 11/13] drm/i915: Cache ringbuffer GTT address
  2016-01-11 16:16   ` [PATCH 11/13] drm/i915: Cache ringbuffer GTT address Dave Gordon
@ 2016-01-11 17:44     ` Tvrtko Ursulin
  0 siblings, 0 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-11 17:44 UTC (permalink / raw)
  To: Dave Gordon, Intel-gfx


On 11/01/16 16:16, Dave Gordon wrote:
> On 08/01/16 11:29, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> Purpose is to avoid calling i915_gem_obj_ggtt_offset from the
>> interrupt context without the big lock held.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> ---
>>   drivers/gpu/drm/i915/intel_lrc.c        | 3 +--
>>   drivers/gpu/drm/i915/intel_ringbuffer.c | 3 +++
>>   drivers/gpu/drm/i915/intel_ringbuffer.h | 1 +
>>   3 files changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_lrc.c
>> b/drivers/gpu/drm/i915/intel_lrc.c
>> index 5b3795815d8e..70c511ef6b12 100644
>> --- a/drivers/gpu/drm/i915/intel_lrc.c
>> +++ b/drivers/gpu/drm/i915/intel_lrc.c
>> @@ -345,7 +345,6 @@ static int execlists_update_context(struct
>> drm_i915_gem_request *rq)
>>       struct intel_engine_cs *ring = rq->ring;
>>       struct i915_hw_ppgtt *ppgtt = rq->ctx->ppgtt;
>>       struct drm_i915_gem_object *ctx_obj =
>> rq->ctx->engine[ring->id].state;
>> -    struct drm_i915_gem_object *rb_obj = rq->ringbuf->obj;
>>       struct page *page;
>>       uint32_t *reg_state;
>>
>> @@ -355,7 +354,7 @@ static int execlists_update_context(struct
>> drm_i915_gem_request *rq)
>>       reg_state = kmap_atomic(page);
>>
>>       reg_state[CTX_RING_TAIL+1] = rq->tail;
>> -    reg_state[CTX_RING_BUFFER_START+1] =
>> i915_gem_obj_ggtt_offset(rb_obj);
>> +    reg_state[CTX_RING_BUFFER_START+1] = rq->ringbuf->gtt_start;
>>
>>       if (ppgtt && !USES_FULL_48BIT_PPGTT(ppgtt->base.dev)) {
>>           /* True 32b PPGTT with dynamic page allocation: update PDP
>> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c
>> b/drivers/gpu/drm/i915/intel_ringbuffer.c
>> index 339701d7a9a5..9094ce254125 100644
>> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
>> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
>> @@ -1988,6 +1988,7 @@ void intel_unpin_ringbuffer_obj(struct
>> intel_ringbuffer *ringbuf)
>>       else
>>           iounmap(ringbuf->virtual_start);
>>       ringbuf->virtual_start = NULL;
>> +    ringbuf->gtt_start = 0;
>
> Zero isn't an invalid GTT address (although it does cause confusion).
> Maybe we should define a suitable value to indicate not-an-address?
> Anything with low bits set, or above 4Gb, is not valid, so perhaps:

Oh yes, it crossed my mind and then I forgot about it, so thanks!

> #define    I915_GTT_BAD_ADDRESS        (~(u64)0)

It would match current behaviour of i915_gem_obj_offset(_view) of 
returning -1 when VMA is not found so I think it is good enough to go 
with this approach.

Regards,

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

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

* Re: [PATCH 05/13] drm/i915: Cache LRCA in the context
  2016-01-11  8:38   ` Daniel Vetter
@ 2016-01-11 19:41     ` Dave Gordon
  2016-01-12  9:59       ` Tvrtko Ursulin
  0 siblings, 1 reply; 124+ messages in thread
From: Dave Gordon @ 2016-01-11 19:41 UTC (permalink / raw)
  To: Daniel Vetter, Tvrtko Ursulin; +Cc: Intel-gfx

On 11/01/16 08:38, Daniel Vetter wrote:
> On Fri, Jan 08, 2016 at 11:29:44AM +0000, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> We are not allowed to call i915_gem_obj_ggtt_offset from irq
>> context without the big kernel lock held.
>>
>> LRCA lifetime is well defined so cache it so it can be looked up
>> cheaply from the interrupt context and at command submission
>> time.
>>
>> v2: Added irq context reasoning to the commit message. (Daniel Vetter)
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> A i915_obj_for_each_vma macro with a
> WARN_ON(!mutex_is_locked(dev->struct_mutex)) would be awesome to validate
> this. Especially since this is by far not the only time I've seen this
> bug. Needs to be a follow-up though to avoid stalling this fix.
>
>> ---
>>   drivers/gpu/drm/i915/i915_debugfs.c | 15 ++++++--------
>>   drivers/gpu/drm/i915/i915_drv.h     |  1 +
>>   drivers/gpu/drm/i915/intel_lrc.c    | 40 ++++++++++++++++---------------------
>>   drivers/gpu/drm/i915/intel_lrc.h    |  3 ++-
>>   4 files changed, 26 insertions(+), 33 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>> index 3b05bd189eab..714a45cf8a51 100644
>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>> @@ -1976,12 +1976,13 @@ static int i915_context_status(struct seq_file *m, void *unused)
>>   }
>>
>>   static void i915_dump_lrc_obj(struct seq_file *m,
>> -			      struct intel_engine_cs *ring,
>> -			      struct drm_i915_gem_object *ctx_obj)
>> +			      struct intel_context *ctx,
>> +			      struct intel_engine_cs *ring)
>>   {
>>   	struct page *page;
>>   	uint32_t *reg_state;
>>   	int j;
>> +	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
>>   	unsigned long ggtt_offset = 0;
>>
>>   	if (ctx_obj == NULL) {
>> @@ -1991,7 +1992,7 @@ static void i915_dump_lrc_obj(struct seq_file *m,
>>   	}
>>
>>   	seq_printf(m, "CONTEXT: %s %u\n", ring->name,
>> -		   intel_execlists_ctx_id(ctx_obj));
>> +		   intel_execlists_ctx_id(ctx, ring));
>>
>>   	if (!i915_gem_obj_ggtt_bound(ctx_obj))
>>   		seq_puts(m, "\tNot bound in GGTT\n");
>> @@ -2040,8 +2041,7 @@ static int i915_dump_lrc(struct seq_file *m, void *unused)
>>   	list_for_each_entry(ctx, &dev_priv->context_list, link) {
>>   		for_each_ring(ring, dev_priv, i) {
>>   			if (ring->default_context != ctx)
>> -				i915_dump_lrc_obj(m, ring,
>> -						  ctx->engine[i].state);
>> +				i915_dump_lrc_obj(m, ctx, ring);
>>   		}
>>   	}
>>
>> @@ -2115,11 +2115,8 @@ static int i915_execlists(struct seq_file *m, void *data)
>>
>>   		seq_printf(m, "\t%d requests in queue\n", count);
>>   		if (head_req) {
>> -			struct drm_i915_gem_object *ctx_obj;
>> -
>> -			ctx_obj = head_req->ctx->engine[ring_id].state;
>>   			seq_printf(m, "\tHead request id: %u\n",
>> -				   intel_execlists_ctx_id(ctx_obj));
>> +				   intel_execlists_ctx_id(head_req->ctx, ring));
>>   			seq_printf(m, "\tHead request tail: %u\n",
>>   				   head_req->tail);
>>   		}
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index 8cf655c6fc03..b77a5d84eac2 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -881,6 +881,7 @@ struct intel_context {
>>   		struct drm_i915_gem_object *state;
>>   		struct intel_ringbuffer *ringbuf;
>>   		int pin_count;
>> +		u32 lrca;
>
> lrc_offset imo. Consistent with our other usage in the driver, and
> actually readable. Please apply liberally everywhere else (I know that
> bsepc calls it lrca, but we don't need to follow bad naming styles
> blindly).
>
> With that Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
>>   	} engine[I915_NUM_RINGS];
>>
>>   	struct list_head link;
>> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
>> index ff146a15d395..ffe004de22b0 100644
>> --- a/drivers/gpu/drm/i915/intel_lrc.c
>> +++ b/drivers/gpu/drm/i915/intel_lrc.c
>> @@ -265,7 +265,8 @@ int intel_sanitize_enable_execlists(struct drm_device *dev, int enable_execlists
>>
>>   /**
>>    * intel_execlists_ctx_id() - get the Execlists Context ID
>> - * @ctx_obj: Logical Ring Context backing object.
>> + * @ctx: Context to get the ID for
>> + * @ring: Engine to get the ID for
>>    *
>>    * Do not confuse with ctx->id! Unfortunately we have a name overload
>>    * here: the old context ID we pass to userspace as a handler so that
>> @@ -275,14 +276,12 @@ int intel_sanitize_enable_execlists(struct drm_device *dev, int enable_execlists
>>    *
>>    * Return: 20-bits globally unique context ID.
>>    */
>> -u32 intel_execlists_ctx_id(struct drm_i915_gem_object *ctx_obj)
>> +u32 intel_execlists_ctx_id(struct intel_context *ctx,
>> +			   struct intel_engine_cs *ring)
>>   {
>> -	u32 lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
>> -			LRC_PPHWSP_PN * PAGE_SIZE;
>> -
>>   	/* LRCA is required to be 4K aligned so the more significant 20 bits
>>   	 * are globally unique */
>> -	return lrca >> 12;
>> +	return ctx->engine[ring->id].lrca >> 12;
>>   }
>>
>>   static bool disable_lite_restore_wa(struct intel_engine_cs *ring)
>> @@ -297,13 +296,11 @@ static bool disable_lite_restore_wa(struct intel_engine_cs *ring)
>>   uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
>>   				     struct intel_engine_cs *ring)
>>   {
>> -	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
>> +	uint64_t lrca = ctx->engine[ring->id].lrca;
>>   	uint64_t desc = ring->ctx_desc_template;
>> -	uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
>> -			LRC_PPHWSP_PN * PAGE_SIZE;
>>
>>   	desc |= lrca;
>> -	desc |= (u64)intel_execlists_ctx_id(ctx_obj) << GEN8_CTX_ID_SHIFT;
>> +	desc |= (u64)intel_execlists_ctx_id(ctx, ring) << GEN8_CTX_ID_SHIFT;
>>
>>   	return desc;
>>   }
>> @@ -461,9 +458,7 @@ static bool execlists_check_remove_request(struct intel_engine_cs *ring,
>>   					    execlist_link);
>>
>>   	if (head_req != NULL) {
>> -		struct drm_i915_gem_object *ctx_obj =
>> -				head_req->ctx->engine[ring->id].state;
>> -		if (intel_execlists_ctx_id(ctx_obj) == request_id) {
>> +		if (intel_execlists_ctx_id(head_req->ctx, ring) == request_id) {
>>   			WARN(head_req->elsp_submitted == 0,
>>   			     "Never submitted head request\n");
>>
>> @@ -1023,15 +1018,17 @@ int logical_ring_flush_all_caches(struct drm_i915_gem_request *req)
>>   }
>>
>>   static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
>> -		struct drm_i915_gem_object *ctx_obj,
>> -		struct intel_ringbuffer *ringbuf)
>> +				   struct intel_context *ctx)
>>   {
>>   	struct drm_device *dev = ring->dev;
>>   	struct drm_i915_private *dev_priv = dev->dev_private;
>> +	struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
>> +	struct intel_ringbuffer *ringbuf = ctx->engine[ring->id].ringbuf;
>>   	u64 lrca;
>> -	int ret = 0;
>> +	int ret;
>>
>>   	WARN_ON(!mutex_is_locked(&ring->dev->struct_mutex));
>> +
>>   	ret = i915_gem_obj_ggtt_pin(ctx_obj, GEN8_LR_CONTEXT_ALIGN,
>>   			PIN_OFFSET_BIAS | GUC_WOPCM_TOP);
>>   	if (ret)
>> @@ -1047,6 +1044,7 @@ static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
>>   	if (ret)
>>   		goto unpin_ctx_obj;
>>
>> +	ctx->engine[ring->id].lrca = lrca;
>>   	ctx_obj->dirty = true;
>>
>>   	/* Invalidate GuC TLB. */
>> @@ -1065,11 +1063,9 @@ static int intel_lr_context_pin(struct drm_i915_gem_request *rq)
>>   {
>>   	int ret = 0;
>>   	struct intel_engine_cs *ring = rq->ring;
>> -	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
>> -	struct intel_ringbuffer *ringbuf = rq->ringbuf;
>>
>>   	if (rq->ctx->engine[ring->id].pin_count++ == 0) {
>> -		ret = intel_lr_context_do_pin(ring, ctx_obj, ringbuf);
>> +		ret = intel_lr_context_do_pin(ring, rq->ctx);
>>   		if (ret)
>>   			goto reset_pin_count;
>>   	}
>> @@ -1091,6 +1087,7 @@ void intel_lr_context_unpin(struct drm_i915_gem_request *rq)
>>   		if (--rq->ctx->engine[ring->id].pin_count == 0) {
>>   			intel_unpin_ringbuffer_obj(ringbuf);
>>   			i915_gem_object_ggtt_unpin(ctx_obj);
>> +			rq->ctx->engine[ring->id].lrca = 0;
>>   		}
>>   	}
>>   }
>> @@ -1960,10 +1957,7 @@ static int logical_ring_init(struct drm_device *dev, struct intel_engine_cs *rin
>>   		goto error;
>>
>>   	/* As this is the default context, always pin it */
>> -	ret = intel_lr_context_do_pin(
>> -			ring,
>> -			ring->default_context->engine[ring->id].state,
>> -			ring->default_context->engine[ring->id].ringbuf);
>> +	ret = intel_lr_context_do_pin(ring, ring->default_context);
>>   	if (ret) {
>>   		DRM_ERROR(
>>   			"Failed to pin and map ringbuffer %s: %d\n",
>> diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h
>> index de41ad6cd63d..f9db5f187d77 100644
>> --- a/drivers/gpu/drm/i915/intel_lrc.h
>> +++ b/drivers/gpu/drm/i915/intel_lrc.h
>> @@ -106,6 +106,8 @@ void intel_lr_context_reset(struct drm_device *dev,
>>   			struct intel_context *ctx);
>>   uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
>>   				     struct intel_engine_cs *ring);
>> +u32 intel_execlists_ctx_id(struct intel_context *ctx,
>> +			   struct intel_engine_cs *ring);
>>
>>   /* Execlists */
>>   int intel_sanitize_enable_execlists(struct drm_device *dev, int enable_execlists);
>> @@ -113,7 +115,6 @@ struct i915_execbuffer_params;
>>   int intel_execlists_submission(struct i915_execbuffer_params *params,
>>   			       struct drm_i915_gem_execbuffer2 *args,
>>   			       struct list_head *vmas);
>> -u32 intel_execlists_ctx_id(struct drm_i915_gem_object *ctx_obj);
>>
>>   void intel_lrc_irq_handler(struct intel_engine_cs *ring);
>>   void intel_execlists_retire_requests(struct intel_engine_cs *ring);
>> --
>> 1.9.1
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

How about caching the WHOLE descriptor so that retrieval becomes 
trivial, retrieving the context ID becomes almost as trivial, as
does retrieving the LRCA (all these could be inlined) and the single 
calculate-and-cache function can be nicely documented as to how a 
descriptor encodes LRCA etc. Something like this ...

/**
  * intel_lr_context_descriptor_update() - calculate & cache the
  *					  descriptor for a pinned
  * 					  context
  * @ctx: Context to work on
  * @ring: Engine the descriptor will be used with
  *
  * The context descriptor encodes various attributes of a context,
  * including its GTT address and some flags. Because it's fairly
  * expensive to calculate, we'll just do it once and cache the result,
  * which remains valid until the context is unpinned.
  *
  * This is what a descriptor looks like, from LSB to MSB:
  *	bits 0-11:	flags, GEN8_CTX_* (cached in ctx_desc_template)
  *	bits 12-31:	LRCA, GTT address of (the HWSP of) this context
  *	bits 32-51:	ctx ID, a globally unique tag (the LRCA again!)
  *	bits 52-63:	reserved, may encode the engine ID (for GuC)
  */
static void
intel_lr_context_descriptor_update(struct intel_context *ctx,
				   struct intel_engine_cs *ring)
{
         struct drm_i915_gem_object *ctx_obj;
	uint64_t lrca, desc;

	ctx_obj = ctx->engine[ring->id].state;
	lrca = i915_gem_obj_ggtt_offset(ctx_obj) + LRC_PPHWSP_PN * PAGE_SIZE;

	desc = ring->ctx_desc_template;			/* bits  0-11 */
	desc |= lrca;					/* bits 12-31 */
	desc |= (lrca >> PAGE_SHIFT) << 32;		/* bits 32-51 */

	ctx->engine[ring->id].ctx_desc = desc;
}

/**
  * intel_lr_context_descriptor() - get the descriptor for the specified
  * 				   context/engine combination
  * @ctx: Context to get the ID for
  * @ring: Engine to get the ID for
  *
  * Now just a trivial accessor, since the value was computed and cached
  * above at the point when the context was pinned.
  *
  * Return: 64-bit context descriptor (encodes LRCA and various flags)
  */
uint64_t inline
intel_lr_context_descriptor(struct intel_context *ctx,
			    struct intel_engine_cs *ring)
{
	return ctx->engine[ring->id].ctx_desc;
}

/**
* intel_lr_context_address() - get the GTT address of (the HWSP of) the
*			       specified context/engine combination
* @ctx: Context to get the ID for
* @ring: Engine to get the ID for
*
* The address (LRCA) is a portion of the context descriptor, so we can
* just extract the required part from the cached descriptor.
*
* Return: 32-bit GTT address
*/
uint32_t inline
intel_lr_context_address(struct intel_context *ctx,
			 struct intel_engine_cs *ring)
{
	return (u32)intel_lr_context_descriptor(ctx, ring) & PAGE_MASK;
}

/**
  * intel_execlists_ctx_id() - get the Execlists Context ID
  * @ctx: Context to get the ID for
  * @ring: Engine to get the ID for
  *
  * Do not confuse with ctx->id! Unfortunately we have a name overload
  * here: the old context ID we pass to userspace as a handler so that
  * they can refer to a context, and the new context ID we pass to the
  * ELSP so that the GPU can inform us of the context status via
  * interrupts.
  *
  * The context ID is a portion of the context descriptor, so we can
  * just extract the required part from the cached descriptor.
  *
  * Return: 20-bit globally unique ctx ID (actually, a GTT page number)
  */
uint32_t inline
intel_execlists_ctx_id(struct intel_context *ctx,
		       struct intel_engine_cs *ring)
{
	return (u32)(intel_lr_context_descriptor(ctx, ring) >> 32);
}

... and insert a call to intel_lr_context_descriptor_update() into the 
appropriate spot in intel_lr_context_do_pin().

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

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

* Re: [PATCH 04/13] drm/i915: Fail engine initialization if LRCA is incorrectly aligned
  2016-01-11 16:02     ` Dave Gordon
@ 2016-01-11 23:31       ` Chris Wilson
  0 siblings, 0 replies; 124+ messages in thread
From: Chris Wilson @ 2016-01-11 23:31 UTC (permalink / raw)
  To: Dave Gordon; +Cc: Intel-gfx

On Mon, Jan 11, 2016 at 04:02:09PM +0000, Dave Gordon wrote:
> IIRC the original version of this WARN (in intel_lr_context_descriptor()
> above) was added with the GuC submission code, because the context
> descriptor as used in execlist code is a 64-bit value, but the GuC
> requires that all the unique stuff fits in those 20 unmasked bits of
> a 32-bit value, with the low 12 bits being used for flags. So we
> wanted to check that we never got a context ID that couldn't be
> pruned down to just those 20 bits without losing information. It's
> never been seen to happen since GuC development finished, so we can
> reasonably lose the check now.

I am missing something here as the GuC doesn't use the high 32bits of
the context descriptor, i.e. it never touches the lrca portion?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 05/13] drm/i915: Cache LRCA in the context
  2016-01-11 19:41     ` Dave Gordon
@ 2016-01-12  9:59       ` Tvrtko Ursulin
  0 siblings, 0 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-12  9:59 UTC (permalink / raw)
  To: Dave Gordon, Daniel Vetter; +Cc: Intel-gfx


On 11/01/16 19:41, Dave Gordon wrote:
> On 11/01/16 08:38, Daniel Vetter wrote:
>> On Fri, Jan 08, 2016 at 11:29:44AM +0000, Tvrtko Ursulin wrote:
>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>
>>> We are not allowed to call i915_gem_obj_ggtt_offset from irq
>>> context without the big kernel lock held.
>>>
>>> LRCA lifetime is well defined so cache it so it can be looked up
>>> cheaply from the interrupt context and at command submission
>>> time.
>>>
>>> v2: Added irq context reasoning to the commit message. (Daniel Vetter)
>>>
>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> A i915_obj_for_each_vma macro with a
>> WARN_ON(!mutex_is_locked(dev->struct_mutex)) would be awesome to validate
>> this. Especially since this is by far not the only time I've seen this
>> bug. Needs to be a follow-up though to avoid stalling this fix.
>>
>>> ---
>>>   drivers/gpu/drm/i915/i915_debugfs.c | 15 ++++++--------
>>>   drivers/gpu/drm/i915/i915_drv.h     |  1 +
>>>   drivers/gpu/drm/i915/intel_lrc.c    | 40
>>> ++++++++++++++++---------------------
>>>   drivers/gpu/drm/i915/intel_lrc.h    |  3 ++-
>>>   4 files changed, 26 insertions(+), 33 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c
>>> b/drivers/gpu/drm/i915/i915_debugfs.c
>>> index 3b05bd189eab..714a45cf8a51 100644
>>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
>>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>>> @@ -1976,12 +1976,13 @@ static int i915_context_status(struct
>>> seq_file *m, void *unused)
>>>   }
>>>
>>>   static void i915_dump_lrc_obj(struct seq_file *m,
>>> -                  struct intel_engine_cs *ring,
>>> -                  struct drm_i915_gem_object *ctx_obj)
>>> +                  struct intel_context *ctx,
>>> +                  struct intel_engine_cs *ring)
>>>   {
>>>       struct page *page;
>>>       uint32_t *reg_state;
>>>       int j;
>>> +    struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
>>>       unsigned long ggtt_offset = 0;
>>>
>>>       if (ctx_obj == NULL) {
>>> @@ -1991,7 +1992,7 @@ static void i915_dump_lrc_obj(struct seq_file *m,
>>>       }
>>>
>>>       seq_printf(m, "CONTEXT: %s %u\n", ring->name,
>>> -           intel_execlists_ctx_id(ctx_obj));
>>> +           intel_execlists_ctx_id(ctx, ring));
>>>
>>>       if (!i915_gem_obj_ggtt_bound(ctx_obj))
>>>           seq_puts(m, "\tNot bound in GGTT\n");
>>> @@ -2040,8 +2041,7 @@ static int i915_dump_lrc(struct seq_file *m,
>>> void *unused)
>>>       list_for_each_entry(ctx, &dev_priv->context_list, link) {
>>>           for_each_ring(ring, dev_priv, i) {
>>>               if (ring->default_context != ctx)
>>> -                i915_dump_lrc_obj(m, ring,
>>> -                          ctx->engine[i].state);
>>> +                i915_dump_lrc_obj(m, ctx, ring);
>>>           }
>>>       }
>>>
>>> @@ -2115,11 +2115,8 @@ static int i915_execlists(struct seq_file *m,
>>> void *data)
>>>
>>>           seq_printf(m, "\t%d requests in queue\n", count);
>>>           if (head_req) {
>>> -            struct drm_i915_gem_object *ctx_obj;
>>> -
>>> -            ctx_obj = head_req->ctx->engine[ring_id].state;
>>>               seq_printf(m, "\tHead request id: %u\n",
>>> -                   intel_execlists_ctx_id(ctx_obj));
>>> +                   intel_execlists_ctx_id(head_req->ctx, ring));
>>>               seq_printf(m, "\tHead request tail: %u\n",
>>>                      head_req->tail);
>>>           }
>>> diff --git a/drivers/gpu/drm/i915/i915_drv.h
>>> b/drivers/gpu/drm/i915/i915_drv.h
>>> index 8cf655c6fc03..b77a5d84eac2 100644
>>> --- a/drivers/gpu/drm/i915/i915_drv.h
>>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>>> @@ -881,6 +881,7 @@ struct intel_context {
>>>           struct drm_i915_gem_object *state;
>>>           struct intel_ringbuffer *ringbuf;
>>>           int pin_count;
>>> +        u32 lrca;
>>
>> lrc_offset imo. Consistent with our other usage in the driver, and
>> actually readable. Please apply liberally everywhere else (I know that
>> bsepc calls it lrca, but we don't need to follow bad naming styles
>> blindly).
>>
>> With that Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>>
>>>       } engine[I915_NUM_RINGS];
>>>
>>>       struct list_head link;
>>> diff --git a/drivers/gpu/drm/i915/intel_lrc.c
>>> b/drivers/gpu/drm/i915/intel_lrc.c
>>> index ff146a15d395..ffe004de22b0 100644
>>> --- a/drivers/gpu/drm/i915/intel_lrc.c
>>> +++ b/drivers/gpu/drm/i915/intel_lrc.c
>>> @@ -265,7 +265,8 @@ int intel_sanitize_enable_execlists(struct
>>> drm_device *dev, int enable_execlists
>>>
>>>   /**
>>>    * intel_execlists_ctx_id() - get the Execlists Context ID
>>> - * @ctx_obj: Logical Ring Context backing object.
>>> + * @ctx: Context to get the ID for
>>> + * @ring: Engine to get the ID for
>>>    *
>>>    * Do not confuse with ctx->id! Unfortunately we have a name overload
>>>    * here: the old context ID we pass to userspace as a handler so that
>>> @@ -275,14 +276,12 @@ int intel_sanitize_enable_execlists(struct
>>> drm_device *dev, int enable_execlists
>>>    *
>>>    * Return: 20-bits globally unique context ID.
>>>    */
>>> -u32 intel_execlists_ctx_id(struct drm_i915_gem_object *ctx_obj)
>>> +u32 intel_execlists_ctx_id(struct intel_context *ctx,
>>> +               struct intel_engine_cs *ring)
>>>   {
>>> -    u32 lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
>>> -            LRC_PPHWSP_PN * PAGE_SIZE;
>>> -
>>>       /* LRCA is required to be 4K aligned so the more significant 20
>>> bits
>>>        * are globally unique */
>>> -    return lrca >> 12;
>>> +    return ctx->engine[ring->id].lrca >> 12;
>>>   }
>>>
>>>   static bool disable_lite_restore_wa(struct intel_engine_cs *ring)
>>> @@ -297,13 +296,11 @@ static bool disable_lite_restore_wa(struct
>>> intel_engine_cs *ring)
>>>   uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
>>>                        struct intel_engine_cs *ring)
>>>   {
>>> -    struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
>>> +    uint64_t lrca = ctx->engine[ring->id].lrca;
>>>       uint64_t desc = ring->ctx_desc_template;
>>> -    uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj) +
>>> -            LRC_PPHWSP_PN * PAGE_SIZE;
>>>
>>>       desc |= lrca;
>>> -    desc |= (u64)intel_execlists_ctx_id(ctx_obj) << GEN8_CTX_ID_SHIFT;
>>> +    desc |= (u64)intel_execlists_ctx_id(ctx, ring) <<
>>> GEN8_CTX_ID_SHIFT;
>>>
>>>       return desc;
>>>   }
>>> @@ -461,9 +458,7 @@ static bool execlists_check_remove_request(struct
>>> intel_engine_cs *ring,
>>>                           execlist_link);
>>>
>>>       if (head_req != NULL) {
>>> -        struct drm_i915_gem_object *ctx_obj =
>>> -                head_req->ctx->engine[ring->id].state;
>>> -        if (intel_execlists_ctx_id(ctx_obj) == request_id) {
>>> +        if (intel_execlists_ctx_id(head_req->ctx, ring) ==
>>> request_id) {
>>>               WARN(head_req->elsp_submitted == 0,
>>>                    "Never submitted head request\n");
>>>
>>> @@ -1023,15 +1018,17 @@ int logical_ring_flush_all_caches(struct
>>> drm_i915_gem_request *req)
>>>   }
>>>
>>>   static int intel_lr_context_do_pin(struct intel_engine_cs *ring,
>>> -        struct drm_i915_gem_object *ctx_obj,
>>> -        struct intel_ringbuffer *ringbuf)
>>> +                   struct intel_context *ctx)
>>>   {
>>>       struct drm_device *dev = ring->dev;
>>>       struct drm_i915_private *dev_priv = dev->dev_private;
>>> +    struct drm_i915_gem_object *ctx_obj = ctx->engine[ring->id].state;
>>> +    struct intel_ringbuffer *ringbuf = ctx->engine[ring->id].ringbuf;
>>>       u64 lrca;
>>> -    int ret = 0;
>>> +    int ret;
>>>
>>>       WARN_ON(!mutex_is_locked(&ring->dev->struct_mutex));
>>> +
>>>       ret = i915_gem_obj_ggtt_pin(ctx_obj, GEN8_LR_CONTEXT_ALIGN,
>>>               PIN_OFFSET_BIAS | GUC_WOPCM_TOP);
>>>       if (ret)
>>> @@ -1047,6 +1044,7 @@ static int intel_lr_context_do_pin(struct
>>> intel_engine_cs *ring,
>>>       if (ret)
>>>           goto unpin_ctx_obj;
>>>
>>> +    ctx->engine[ring->id].lrca = lrca;
>>>       ctx_obj->dirty = true;
>>>
>>>       /* Invalidate GuC TLB. */
>>> @@ -1065,11 +1063,9 @@ static int intel_lr_context_pin(struct
>>> drm_i915_gem_request *rq)
>>>   {
>>>       int ret = 0;
>>>       struct intel_engine_cs *ring = rq->ring;
>>> -    struct drm_i915_gem_object *ctx_obj =
>>> rq->ctx->engine[ring->id].state;
>>> -    struct intel_ringbuffer *ringbuf = rq->ringbuf;
>>>
>>>       if (rq->ctx->engine[ring->id].pin_count++ == 0) {
>>> -        ret = intel_lr_context_do_pin(ring, ctx_obj, ringbuf);
>>> +        ret = intel_lr_context_do_pin(ring, rq->ctx);
>>>           if (ret)
>>>               goto reset_pin_count;
>>>       }
>>> @@ -1091,6 +1087,7 @@ void intel_lr_context_unpin(struct
>>> drm_i915_gem_request *rq)
>>>           if (--rq->ctx->engine[ring->id].pin_count == 0) {
>>>               intel_unpin_ringbuffer_obj(ringbuf);
>>>               i915_gem_object_ggtt_unpin(ctx_obj);
>>> +            rq->ctx->engine[ring->id].lrca = 0;
>>>           }
>>>       }
>>>   }
>>> @@ -1960,10 +1957,7 @@ static int logical_ring_init(struct drm_device
>>> *dev, struct intel_engine_cs *rin
>>>           goto error;
>>>
>>>       /* As this is the default context, always pin it */
>>> -    ret = intel_lr_context_do_pin(
>>> -            ring,
>>> -            ring->default_context->engine[ring->id].state,
>>> -            ring->default_context->engine[ring->id].ringbuf);
>>> +    ret = intel_lr_context_do_pin(ring, ring->default_context);
>>>       if (ret) {
>>>           DRM_ERROR(
>>>               "Failed to pin and map ringbuffer %s: %d\n",
>>> diff --git a/drivers/gpu/drm/i915/intel_lrc.h
>>> b/drivers/gpu/drm/i915/intel_lrc.h
>>> index de41ad6cd63d..f9db5f187d77 100644
>>> --- a/drivers/gpu/drm/i915/intel_lrc.h
>>> +++ b/drivers/gpu/drm/i915/intel_lrc.h
>>> @@ -106,6 +106,8 @@ void intel_lr_context_reset(struct drm_device *dev,
>>>               struct intel_context *ctx);
>>>   uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
>>>                        struct intel_engine_cs *ring);
>>> +u32 intel_execlists_ctx_id(struct intel_context *ctx,
>>> +               struct intel_engine_cs *ring);
>>>
>>>   /* Execlists */
>>>   int intel_sanitize_enable_execlists(struct drm_device *dev, int
>>> enable_execlists);
>>> @@ -113,7 +115,6 @@ struct i915_execbuffer_params;
>>>   int intel_execlists_submission(struct i915_execbuffer_params *params,
>>>                      struct drm_i915_gem_execbuffer2 *args,
>>>                      struct list_head *vmas);
>>> -u32 intel_execlists_ctx_id(struct drm_i915_gem_object *ctx_obj);
>>>
>>>   void intel_lrc_irq_handler(struct intel_engine_cs *ring);
>>>   void intel_execlists_retire_requests(struct intel_engine_cs *ring);
>>> --
>>> 1.9.1
>>>
>>> _______________________________________________
>>> Intel-gfx mailing list
>>> Intel-gfx@lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> How about caching the WHOLE descriptor so that retrieval becomes
> trivial, retrieving the context ID becomes almost as trivial, as
> does retrieving the LRCA (all these could be inlined) and the single
> calculate-and-cache function can be nicely documented as to how a
> descriptor encodes LRCA etc. Something like this ...

Similar to v3 of my series from yesterday as Daniel already suggested 
caching it all. :)

But I think moving towards storing the VMA will be the approach unless 
we can agree on that I915_GTT_BAD_ADDRESS idea.

> /**
>   * intel_lr_context_descriptor_update() - calculate & cache the
>   *                      descriptor for a pinned
>   *                       context
>   * @ctx: Context to work on
>   * @ring: Engine the descriptor will be used with
>   *
>   * The context descriptor encodes various attributes of a context,
>   * including its GTT address and some flags. Because it's fairly
>   * expensive to calculate, we'll just do it once and cache the result,
>   * which remains valid until the context is unpinned.
>   *
>   * This is what a descriptor looks like, from LSB to MSB:
>   *    bits 0-11:    flags, GEN8_CTX_* (cached in ctx_desc_template)
>   *    bits 12-31:    LRCA, GTT address of (the HWSP of) this context
>   *    bits 32-51:    ctx ID, a globally unique tag (the LRCA again!)
>   *    bits 52-63:    reserved, may encode the engine ID (for GuC)
>   */
> static void
> intel_lr_context_descriptor_update(struct intel_context *ctx,
>                     struct intel_engine_cs *ring)
> {
>          struct drm_i915_gem_object *ctx_obj;
>      uint64_t lrca, desc;
>
>      ctx_obj = ctx->engine[ring->id].state;
>      lrca = i915_gem_obj_ggtt_offset(ctx_obj) + LRC_PPHWSP_PN * PAGE_SIZE;
>
>      desc = ring->ctx_desc_template;            /* bits  0-11 */
>      desc |= lrca;                    /* bits 12-31 */
>      desc |= (lrca >> PAGE_SHIFT) << 32;        /* bits 32-51 */
>
>      ctx->engine[ring->id].ctx_desc = desc;
> }
>
> /**
>   * intel_lr_context_descriptor() - get the descriptor for the specified
>   *                    context/engine combination
>   * @ctx: Context to get the ID for
>   * @ring: Engine to get the ID for
>   *
>   * Now just a trivial accessor, since the value was computed and cached
>   * above at the point when the context was pinned.
>   *
>   * Return: 64-bit context descriptor (encodes LRCA and various flags)
>   */
> uint64_t inline
> intel_lr_context_descriptor(struct intel_context *ctx,
>                  struct intel_engine_cs *ring)
> {
>      return ctx->engine[ring->id].ctx_desc;
> }
>
> /**
> * intel_lr_context_address() - get the GTT address of (the HWSP of) the
> *                   specified context/engine combination
> * @ctx: Context to get the ID for
> * @ring: Engine to get the ID for
> *
> * The address (LRCA) is a portion of the context descriptor, so we can
> * just extract the required part from the cached descriptor.
> *
> * Return: 32-bit GTT address
> */
> uint32_t inline
> intel_lr_context_address(struct intel_context *ctx,
>               struct intel_engine_cs *ring)
> {
>      return (u32)intel_lr_context_descriptor(ctx, ring) & PAGE_MASK;
> }
>
> /**
>   * intel_execlists_ctx_id() - get the Execlists Context ID
>   * @ctx: Context to get the ID for
>   * @ring: Engine to get the ID for
>   *
>   * Do not confuse with ctx->id! Unfortunately we have a name overload
>   * here: the old context ID we pass to userspace as a handler so that
>   * they can refer to a context, and the new context ID we pass to the
>   * ELSP so that the GPU can inform us of the context status via
>   * interrupts.
>   *
>   * The context ID is a portion of the context descriptor, so we can
>   * just extract the required part from the cached descriptor.
>   *
>   * Return: 20-bit globally unique ctx ID (actually, a GTT page number)
>   */
> uint32_t inline
> intel_execlists_ctx_id(struct intel_context *ctx,
>                 struct intel_engine_cs *ring)
> {
>      return (u32)(intel_lr_context_descriptor(ctx, ring) >> 32);
> }
>
> ... and insert a call to intel_lr_context_descriptor_update() into the
> appropriate spot in intel_lr_context_do_pin().

Regards,

Tvrtko

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

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

* [PATCH v3 3/7] drm/i915: Cache ringbuffer GTT VMA
  2016-01-11  8:49   ` Daniel Vetter
@ 2016-01-12 11:42     ` Tvrtko Ursulin
  2016-01-12 11:54       ` Chris Wilson
  0 siblings, 1 reply; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-12 11:42 UTC (permalink / raw)
  To: Intel-gfx; +Cc: Daniel Vetter

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Purpose is to avoid calling i915_gem_obj_ggtt_offset from the
interrupt context without the big lock held.

v2: Renamed gtt_start to gtt_offset. (Daniel Vetter)
v3: Cache the VMA instead of address. (Chris Wilson)

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/intel_lrc.c        | 3 +--
 drivers/gpu/drm/i915/intel_ringbuffer.c | 3 +++
 drivers/gpu/drm/i915/intel_ringbuffer.h | 1 +
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 504030ce7f93..94314b344f38 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -340,7 +340,6 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
 	struct intel_engine_cs *ring = rq->ring;
 	struct i915_hw_ppgtt *ppgtt = rq->ctx->ppgtt;
 	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
-	struct drm_i915_gem_object *rb_obj = rq->ringbuf->obj;
 	struct page *page;
 	uint32_t *reg_state;
 
@@ -350,7 +349,7 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
 	reg_state = kmap_atomic(page);
 
 	reg_state[CTX_RING_TAIL+1] = rq->tail;
-	reg_state[CTX_RING_BUFFER_START+1] = i915_gem_obj_ggtt_offset(rb_obj);
+	reg_state[CTX_RING_BUFFER_START+1] = rq->ringbuf->vma->node.start;
 
 	if (ppgtt && !USES_FULL_48BIT_PPGTT(ppgtt->base.dev)) {
 		/* True 32b PPGTT with dynamic page allocation: update PDP
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 339701d7a9a5..eccc5323d59b 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1988,6 +1988,7 @@ void intel_unpin_ringbuffer_obj(struct intel_ringbuffer *ringbuf)
 	else
 		iounmap(ringbuf->virtual_start);
 	ringbuf->virtual_start = NULL;
+	ringbuf->vma = NULL;
 	i915_gem_object_ggtt_unpin(ringbuf->obj);
 }
 
@@ -2054,6 +2055,8 @@ int intel_pin_and_map_ringbuffer_obj(struct drm_device *dev,
 		}
 	}
 
+	ringbuf->vma = i915_gem_obj_to_ggtt(obj);
+
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
index 85ce2272f92c..ede57954080e 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -99,6 +99,7 @@ struct intel_ring_hangcheck {
 struct intel_ringbuffer {
 	struct drm_i915_gem_object *obj;
 	void __iomem *virtual_start;
+	struct i915_vma *vma;
 
 	struct intel_engine_cs *ring;
 	struct list_head link;
-- 
1.9.1

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

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

* Re: [PATCH v3 3/7] drm/i915: Cache ringbuffer GTT VMA
  2016-01-12 11:42     ` [PATCH v3 3/7] drm/i915: Cache ringbuffer GTT VMA Tvrtko Ursulin
@ 2016-01-12 11:54       ` Chris Wilson
  0 siblings, 0 replies; 124+ messages in thread
From: Chris Wilson @ 2016-01-12 11:54 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Daniel Vetter, Intel-gfx

On Tue, Jan 12, 2016 at 11:42:39AM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> Purpose is to avoid calling i915_gem_obj_ggtt_offset from the
> interrupt context without the big lock held.
> 
> v2: Renamed gtt_start to gtt_offset. (Daniel Vetter)
> v3: Cache the VMA instead of address. (Chris Wilson)
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>

I feel like I have done this before...

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator
  2016-01-11  9:51       ` Tvrtko Ursulin
@ 2016-01-12 16:19         ` Daniel Vetter
  2016-01-12 16:43           ` Maarten Lankhorst
  2016-01-13 14:35           ` Tvrtko Ursulin
  0 siblings, 2 replies; 124+ messages in thread
From: Daniel Vetter @ 2016-01-12 16:19 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: Daniel Vetter, Intel-gfx

On Mon, Jan 11, 2016 at 09:51:38AM +0000, Tvrtko Ursulin wrote:
> 
> On 11/01/16 08:43, Daniel Vetter wrote:
> > On Fri, Jan 08, 2016 at 01:29:14PM +0000, Tvrtko Ursulin wrote:
> >>
> >> On 08/01/16 11:29, Tvrtko Ursulin wrote:
> >>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> >>>
> >>> Purpose is to catch places which iterate the object VMA list
> >>> without holding the big lock.
> >>>
> >>> Implemented by open coding list_for_each_entry to make the
> >>> macro compatible with existing call sites.
> >>>
> >>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> >>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> >>> ---
> >>>   drivers/gpu/drm/i915/i915_debugfs.c      |  8 ++++----
> >>>   drivers/gpu/drm/i915/i915_drv.h          |  6 ++++++
> >>>   drivers/gpu/drm/i915/i915_gem.c          | 24 ++++++++++++------------
> >>>   drivers/gpu/drm/i915/i915_gem_gtt.c      |  2 +-
> >>>   drivers/gpu/drm/i915/i915_gem_shrinker.c |  2 +-
> >>>   drivers/gpu/drm/i915/i915_gpu_error.c    |  4 ++--
> >>>   6 files changed, 26 insertions(+), 20 deletions(-)
> >>>
> >>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> >>> index 714a45cf8a51..d7c2a3201161 100644
> >>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> >>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> >>> @@ -117,7 +117,7 @@ static u64 i915_gem_obj_total_ggtt_size(struct drm_i915_gem_object *obj)
> >>>   	u64 size = 0;
> >>>   	struct i915_vma *vma;
> >>>
> >>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
> >>> +	i915_gem_obj_for_each_vma(vma, obj) {
> >>>   		if (i915_is_ggtt(vma->vm) &&
> >>>   		    drm_mm_node_allocated(&vma->node))
> >>>   			size += vma->node.size;
> >>> @@ -155,7 +155,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
> >>>   		   obj->madv == I915_MADV_DONTNEED ? " purgeable" : "");
> >>>   	if (obj->base.name)
> >>>   		seq_printf(m, " (name: %d)", obj->base.name);
> >>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
> >>> +	i915_gem_obj_for_each_vma(vma, obj) {
> >>>   		if (vma->pin_count > 0)
> >>>   			pin_count++;
> >>>   	}
> >>> @@ -164,7 +164,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
> >>>   		seq_printf(m, " (display)");
> >>>   	if (obj->fence_reg != I915_FENCE_REG_NONE)
> >>>   		seq_printf(m, " (fence: %d)", obj->fence_reg);
> >>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
> >>> +	i915_gem_obj_for_each_vma(vma, obj) {
> >>>   		seq_printf(m, " (%sgtt offset: %08llx, size: %08llx",
> >>>   			   i915_is_ggtt(vma->vm) ? "g" : "pp",
> >>>   			   vma->node.start, vma->node.size);
> >>> @@ -342,7 +342,7 @@ static int per_file_stats(int id, void *ptr, void *data)
> >>>   		stats->shared += obj->base.size;
> >>>
> >>>   	if (USES_FULL_PPGTT(obj->base.dev)) {
> >>> -		list_for_each_entry(vma, &obj->vma_list, vma_link) {
> >>> +		i915_gem_obj_for_each_vma(vma, obj) {
> >>>   			struct i915_hw_ppgtt *ppgtt;
> >>>
> >>>   			if (!drm_mm_node_allocated(&vma->node))
> >>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> >>> index b77a5d84eac2..0406a020dfcc 100644
> >>> --- a/drivers/gpu/drm/i915/i915_drv.h
> >>> +++ b/drivers/gpu/drm/i915/i915_drv.h
> >>> @@ -2852,6 +2852,12 @@ struct drm_i915_gem_object *i915_gem_object_create_from_data(
> >>>   void i915_gem_free_object(struct drm_gem_object *obj);
> >>>   void i915_gem_vma_destroy(struct i915_vma *vma);
> >>>
> >>> +#define i915_gem_obj_for_each_vma(vma, obj) \
> >>> +	for (WARN_ON_ONCE(!mutex_is_locked(&(obj)->base.dev->struct_mutex)), \
> >>> +	     vma = list_first_entry(&(obj)->vma_list, typeof(*vma), vma_link);\
> >>> +	     &vma->vma_link != (&(obj)->vma_list); \
> >>> +	     vma = list_next_entry(vma, vma_link))
> >>> +
> >>
> >>
> >> Unfortunately error capture is not happy with this approach. Can't even see
> >> that error capture attempts to grab the mutex anywhere.
> >>
> >> So what? Drop the idea or add a "doing error capture" flag somewhere?
> > 
> > Fix the bugs. Not surprise at all that we've screwed this up all over the
> > place ;-) Afaics modeset code isn't much better either ...
> 
> Ok I'll drop this patch then since the series contains fixes to all but one
> related issues. The remaining one is then:
> 
> [   17.370366] ------------[ cut here ]------------
> [   17.375633] WARNING: CPU: 0 PID: 1128 at drivers/gpu/drm/i915/i915_gem.c:5166 i915_gem_obj_ggtt_offset_view+0x10f/0x120 [i915]()
> [   17.388879] WARN_ON_ONCE(!mutex_is_locked(&(o)->base.dev->struct_mutex))
> [   17.396364] Modules linked in: hid_generic usbhid coretemp asix usbnet libphy mii i915 gpio_lynxpoint i2c_hid hid video i2c_algo_bit drm_kms_helper acpi_pad drm lpc_ich mfd_core nls_iso8859_1 e1000e ptp ahci libahci pps_core
> [   17.419484] CPU: 0 PID: 1128 Comm: Xorg Tainted: G     U          4.4.0-rc8-160107+ #105
> [   17.428771] Hardware name: Intel Corporation Broadwell Client platform/WhiteTip Mountain 1, BIOS BDW-E1R1.86C.0080.R01.1406120446 06/12/2014
> [   17.443161]  ffffffffa0227790 ffff8800a98439b8 ffffffff81280d82 ffff8800a9843a00
> [   17.451677]  ffff8800a98439f0 ffffffff81049c8c ffff8801495d0000 ffff8800aa934900
> [   17.460166]  ffff8801495d8668 ffffffffa0242520 ffff8800aacea000 ffff8800a9843a50
> [   17.468674] Call Trace:
> [   17.471470]  [<ffffffff81280d82>] dump_stack+0x4b/0x79
> [   17.477355]  [<ffffffff81049c8c>] warn_slowpath_common+0x7c/0xc0
> [   17.484255]  [<ffffffff81049d17>] warn_slowpath_fmt+0x47/0x50
> [   17.490869]  [<ffffffffa018f7ef>] i915_gem_obj_ggtt_offset_view+0x10f/0x120 [i915]
> [   17.499572]  [<ffffffffa01a7290>] ? gen9_write8+0x2d0/0x2d0 [i915]
> [   17.506663]  [<ffffffffa01bdbfe>] ironlake_update_primary_plane+0x1ee/0x3a0 [i915]
> [   17.515358]  [<ffffffffa01ace1f>] intel_plane_atomic_update+0x5f/0x70 [i915]
> [   17.523391]  [<ffffffffa00ef122>] drm_atomic_helper_commit_planes_on_crtc+0x142/0x230 [drm_kms_helper]
> [   17.534063]  [<ffffffffa01c1744>] intel_atomic_commit+0x424/0x2270 [i915]
> [   17.541763]  [<ffffffff814ee04a>] ? __ww_mutex_lock+0x4a/0x82
> [   17.548355]  [<ffffffffa0097edb>] ? drm_atomic_check_only+0x12b/0x5e0 [drm]
> [   17.556352]  [<ffffffffa0097a07>] ? drm_atomic_set_crtc_for_connector+0x77/0xf0 [drm]
> [   17.565346]  [<ffffffffa00983c2>] drm_atomic_commit+0x32/0x50 [drm]
> [   17.572553]  [<ffffffffa00ef782>] drm_atomic_helper_set_config+0x72/0xb0 [drm_kms_helper]
> [   17.581954]  [<ffffffffa0088e8f>] drm_mode_set_config_internal+0x5f/0x100 [drm]
> [   17.590313]  [<ffffffffa008cdc8>] drm_mode_setcrtc+0xd8/0x500 [drm]
> [   17.597491]  [<ffffffffa007f5d8>] drm_ioctl+0x258/0x4f0 [drm]
> [   17.604065]  [<ffffffff810c34ac>] ? unlock_page+0x4c/0x50
> [   17.610245]  [<ffffffffa008ccf0>] ? drm_mode_setplane+0x1c0/0x1c0 [drm]
> [   17.617844]  [<ffffffff8111597d>] do_vfs_ioctl+0x2cd/0x4a0
> [   17.624137]  [<ffffffff81052572>] ? recalc_sigpending+0x12/0x40
> [   17.630943]  [<ffffffff8111eb32>] ? __fget+0x72/0xb0
> [   17.636645]  [<ffffffff81115b8c>] SyS_ioctl+0x3c/0x70
> [   17.642448]  [<ffffffff81055301>] ? SyS_rt_sigprocmask+0x81/0xa0
> [   17.649334]  [<ffffffff814f0017>] entry_SYSCALL_64_fastpath+0x12/0x6a
> [   17.656740] ---[ end trace 3f29190006c97826 ]---
> 
> Would you like a BZ for this or maybe it is known already?

Maarten is working on this, or at least we're tracking it already in
VIZ-7000.

Can you pls coordinate with Maarten to make sure the final "enable the
warning" patch lands only once all the bits are in?

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

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

* Re: [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator
  2016-01-12 16:19         ` Daniel Vetter
@ 2016-01-12 16:43           ` Maarten Lankhorst
  2016-01-13 14:35           ` Tvrtko Ursulin
  1 sibling, 0 replies; 124+ messages in thread
From: Maarten Lankhorst @ 2016-01-12 16:43 UTC (permalink / raw)
  To: Daniel Vetter, Tvrtko Ursulin; +Cc: Daniel Vetter, Intel-gfx

Op 12-01-16 om 17:19 schreef Daniel Vetter:
> On Mon, Jan 11, 2016 at 09:51:38AM +0000, Tvrtko Ursulin wrote:
>> On 11/01/16 08:43, Daniel Vetter wrote:
>>> On Fri, Jan 08, 2016 at 01:29:14PM +0000, Tvrtko Ursulin wrote:
>>>> On 08/01/16 11:29, Tvrtko Ursulin wrote:
>>>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>>>
>>>>> Purpose is to catch places which iterate the object VMA list
>>>>> without holding the big lock.
>>>>>
>>>>> Implemented by open coding list_for_each_entry to make the
>>>>> macro compatible with existing call sites.
>>>>>
>>>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>>>>> ---
>>>>>   drivers/gpu/drm/i915/i915_debugfs.c      |  8 ++++----
>>>>>   drivers/gpu/drm/i915/i915_drv.h          |  6 ++++++
>>>>>   drivers/gpu/drm/i915/i915_gem.c          | 24 ++++++++++++------------
>>>>>   drivers/gpu/drm/i915/i915_gem_gtt.c      |  2 +-
>>>>>   drivers/gpu/drm/i915/i915_gem_shrinker.c |  2 +-
>>>>>   drivers/gpu/drm/i915/i915_gpu_error.c    |  4 ++--
>>>>>   6 files changed, 26 insertions(+), 20 deletions(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>>>>> index 714a45cf8a51..d7c2a3201161 100644
>>>>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
>>>>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>>>>> @@ -117,7 +117,7 @@ static u64 i915_gem_obj_total_ggtt_size(struct drm_i915_gem_object *obj)
>>>>>   	u64 size = 0;
>>>>>   	struct i915_vma *vma;
>>>>>
>>>>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>>>> +	i915_gem_obj_for_each_vma(vma, obj) {
>>>>>   		if (i915_is_ggtt(vma->vm) &&
>>>>>   		    drm_mm_node_allocated(&vma->node))
>>>>>   			size += vma->node.size;
>>>>> @@ -155,7 +155,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
>>>>>   		   obj->madv == I915_MADV_DONTNEED ? " purgeable" : "");
>>>>>   	if (obj->base.name)
>>>>>   		seq_printf(m, " (name: %d)", obj->base.name);
>>>>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>>>> +	i915_gem_obj_for_each_vma(vma, obj) {
>>>>>   		if (vma->pin_count > 0)
>>>>>   			pin_count++;
>>>>>   	}
>>>>> @@ -164,7 +164,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
>>>>>   		seq_printf(m, " (display)");
>>>>>   	if (obj->fence_reg != I915_FENCE_REG_NONE)
>>>>>   		seq_printf(m, " (fence: %d)", obj->fence_reg);
>>>>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>>>> +	i915_gem_obj_for_each_vma(vma, obj) {
>>>>>   		seq_printf(m, " (%sgtt offset: %08llx, size: %08llx",
>>>>>   			   i915_is_ggtt(vma->vm) ? "g" : "pp",
>>>>>   			   vma->node.start, vma->node.size);
>>>>> @@ -342,7 +342,7 @@ static int per_file_stats(int id, void *ptr, void *data)
>>>>>   		stats->shared += obj->base.size;
>>>>>
>>>>>   	if (USES_FULL_PPGTT(obj->base.dev)) {
>>>>> -		list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>>>> +		i915_gem_obj_for_each_vma(vma, obj) {
>>>>>   			struct i915_hw_ppgtt *ppgtt;
>>>>>
>>>>>   			if (!drm_mm_node_allocated(&vma->node))
>>>>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>>>>> index b77a5d84eac2..0406a020dfcc 100644
>>>>> --- a/drivers/gpu/drm/i915/i915_drv.h
>>>>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>>>>> @@ -2852,6 +2852,12 @@ struct drm_i915_gem_object *i915_gem_object_create_from_data(
>>>>>   void i915_gem_free_object(struct drm_gem_object *obj);
>>>>>   void i915_gem_vma_destroy(struct i915_vma *vma);
>>>>>
>>>>> +#define i915_gem_obj_for_each_vma(vma, obj) \
>>>>> +	for (WARN_ON_ONCE(!mutex_is_locked(&(obj)->base.dev->struct_mutex)), \
>>>>> +	     vma = list_first_entry(&(obj)->vma_list, typeof(*vma), vma_link);\
>>>>> +	     &vma->vma_link != (&(obj)->vma_list); \
>>>>> +	     vma = list_next_entry(vma, vma_link))
>>>>> +
>>>>
>>>> Unfortunately error capture is not happy with this approach. Can't even see
>>>> that error capture attempts to grab the mutex anywhere.
>>>>
>>>> So what? Drop the idea or add a "doing error capture" flag somewhere?
>>> Fix the bugs. Not surprise at all that we've screwed this up all over the
>>> place ;-) Afaics modeset code isn't much better either ...
>> Ok I'll drop this patch then since the series contains fixes to all but one
>> related issues. The remaining one is then:
>>
>> [   17.370366] ------------[ cut here ]------------
>> [   17.375633] WARNING: CPU: 0 PID: 1128 at drivers/gpu/drm/i915/i915_gem.c:5166 i915_gem_obj_ggtt_offset_view+0x10f/0x120 [i915]()
>> [   17.388879] WARN_ON_ONCE(!mutex_is_locked(&(o)->base.dev->struct_mutex))
>> [   17.396364] Modules linked in: hid_generic usbhid coretemp asix usbnet libphy mii i915 gpio_lynxpoint i2c_hid hid video i2c_algo_bit drm_kms_helper acpi_pad drm lpc_ich mfd_core nls_iso8859_1 e1000e ptp ahci libahci pps_core
>> [   17.419484] CPU: 0 PID: 1128 Comm: Xorg Tainted: G     U          4.4.0-rc8-160107+ #105
>> [   17.428771] Hardware name: Intel Corporation Broadwell Client platform/WhiteTip Mountain 1, BIOS BDW-E1R1.86C.0080.R01.1406120446 06/12/2014
>> [   17.443161]  ffffffffa0227790 ffff8800a98439b8 ffffffff81280d82 ffff8800a9843a00
>> [   17.451677]  ffff8800a98439f0 ffffffff81049c8c ffff8801495d0000 ffff8800aa934900
>> [   17.460166]  ffff8801495d8668 ffffffffa0242520 ffff8800aacea000 ffff8800a9843a50
>> [   17.468674] Call Trace:
>> [   17.471470]  [<ffffffff81280d82>] dump_stack+0x4b/0x79
>> [   17.477355]  [<ffffffff81049c8c>] warn_slowpath_common+0x7c/0xc0
>> [   17.484255]  [<ffffffff81049d17>] warn_slowpath_fmt+0x47/0x50
>> [   17.490869]  [<ffffffffa018f7ef>] i915_gem_obj_ggtt_offset_view+0x10f/0x120 [i915]
>> [   17.499572]  [<ffffffffa01a7290>] ? gen9_write8+0x2d0/0x2d0 [i915]
>> [   17.506663]  [<ffffffffa01bdbfe>] ironlake_update_primary_plane+0x1ee/0x3a0 [i915]
>> [   17.515358]  [<ffffffffa01ace1f>] intel_plane_atomic_update+0x5f/0x70 [i915]
>> [   17.523391]  [<ffffffffa00ef122>] drm_atomic_helper_commit_planes_on_crtc+0x142/0x230 [drm_kms_helper]
>> [   17.534063]  [<ffffffffa01c1744>] intel_atomic_commit+0x424/0x2270 [i915]
>> [   17.541763]  [<ffffffff814ee04a>] ? __ww_mutex_lock+0x4a/0x82
>> [   17.548355]  [<ffffffffa0097edb>] ? drm_atomic_check_only+0x12b/0x5e0 [drm]
>> [   17.556352]  [<ffffffffa0097a07>] ? drm_atomic_set_crtc_for_connector+0x77/0xf0 [drm]
>> [   17.565346]  [<ffffffffa00983c2>] drm_atomic_commit+0x32/0x50 [drm]
>> [   17.572553]  [<ffffffffa00ef782>] drm_atomic_helper_set_config+0x72/0xb0 [drm_kms_helper]
>> [   17.581954]  [<ffffffffa0088e8f>] drm_mode_set_config_internal+0x5f/0x100 [drm]
>> [   17.590313]  [<ffffffffa008cdc8>] drm_mode_setcrtc+0xd8/0x500 [drm]
>> [   17.597491]  [<ffffffffa007f5d8>] drm_ioctl+0x258/0x4f0 [drm]
>> [   17.604065]  [<ffffffff810c34ac>] ? unlock_page+0x4c/0x50
>> [   17.610245]  [<ffffffffa008ccf0>] ? drm_mode_setplane+0x1c0/0x1c0 [drm]
>> [   17.617844]  [<ffffffff8111597d>] do_vfs_ioctl+0x2cd/0x4a0
>> [   17.624137]  [<ffffffff81052572>] ? recalc_sigpending+0x12/0x40
>> [   17.630943]  [<ffffffff8111eb32>] ? __fget+0x72/0xb0
>> [   17.636645]  [<ffffffff81115b8c>] SyS_ioctl+0x3c/0x70
>> [   17.642448]  [<ffffffff81055301>] ? SyS_rt_sigprocmask+0x81/0xa0
>> [   17.649334]  [<ffffffff814f0017>] entry_SYSCALL_64_fastpath+0x12/0x6a
>> [   17.656740] ---[ end trace 3f29190006c97826 ]---
>>
>> Would you like a BZ for this or maybe it is known already?
> Maarten is working on this, or at least we're tracking it already in
> VIZ-7000.
>
> Can you pls coordinate with Maarten to make sure the final "enable the
> warning" patch lands only once all the bits are in?
>
Chris Wilson's patch bomb makes it possible to use the vma instead of grabbing the view over and over, and that should fix this specific error.

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

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

* Re: [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator
  2016-01-12 16:19         ` Daniel Vetter
  2016-01-12 16:43           ` Maarten Lankhorst
@ 2016-01-13 14:35           ` Tvrtko Ursulin
  1 sibling, 0 replies; 124+ messages in thread
From: Tvrtko Ursulin @ 2016-01-13 14:35 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Daniel Vetter, Intel-gfx


On 12/01/16 16:19, Daniel Vetter wrote:
> On Mon, Jan 11, 2016 at 09:51:38AM +0000, Tvrtko Ursulin wrote:
>>
>> On 11/01/16 08:43, Daniel Vetter wrote:
>>> On Fri, Jan 08, 2016 at 01:29:14PM +0000, Tvrtko Ursulin wrote:
>>>>
>>>> On 08/01/16 11:29, Tvrtko Ursulin wrote:
>>>>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>>>
>>>>> Purpose is to catch places which iterate the object VMA list
>>>>> without holding the big lock.
>>>>>
>>>>> Implemented by open coding list_for_each_entry to make the
>>>>> macro compatible with existing call sites.
>>>>>
>>>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>>>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>>>>> ---
>>>>>    drivers/gpu/drm/i915/i915_debugfs.c      |  8 ++++----
>>>>>    drivers/gpu/drm/i915/i915_drv.h          |  6 ++++++
>>>>>    drivers/gpu/drm/i915/i915_gem.c          | 24 ++++++++++++------------
>>>>>    drivers/gpu/drm/i915/i915_gem_gtt.c      |  2 +-
>>>>>    drivers/gpu/drm/i915/i915_gem_shrinker.c |  2 +-
>>>>>    drivers/gpu/drm/i915/i915_gpu_error.c    |  4 ++--
>>>>>    6 files changed, 26 insertions(+), 20 deletions(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>>>>> index 714a45cf8a51..d7c2a3201161 100644
>>>>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
>>>>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>>>>> @@ -117,7 +117,7 @@ static u64 i915_gem_obj_total_ggtt_size(struct drm_i915_gem_object *obj)
>>>>>    	u64 size = 0;
>>>>>    	struct i915_vma *vma;
>>>>>
>>>>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>>>> +	i915_gem_obj_for_each_vma(vma, obj) {
>>>>>    		if (i915_is_ggtt(vma->vm) &&
>>>>>    		    drm_mm_node_allocated(&vma->node))
>>>>>    			size += vma->node.size;
>>>>> @@ -155,7 +155,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
>>>>>    		   obj->madv == I915_MADV_DONTNEED ? " purgeable" : "");
>>>>>    	if (obj->base.name)
>>>>>    		seq_printf(m, " (name: %d)", obj->base.name);
>>>>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>>>> +	i915_gem_obj_for_each_vma(vma, obj) {
>>>>>    		if (vma->pin_count > 0)
>>>>>    			pin_count++;
>>>>>    	}
>>>>> @@ -164,7 +164,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
>>>>>    		seq_printf(m, " (display)");
>>>>>    	if (obj->fence_reg != I915_FENCE_REG_NONE)
>>>>>    		seq_printf(m, " (fence: %d)", obj->fence_reg);
>>>>> -	list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>>>> +	i915_gem_obj_for_each_vma(vma, obj) {
>>>>>    		seq_printf(m, " (%sgtt offset: %08llx, size: %08llx",
>>>>>    			   i915_is_ggtt(vma->vm) ? "g" : "pp",
>>>>>    			   vma->node.start, vma->node.size);
>>>>> @@ -342,7 +342,7 @@ static int per_file_stats(int id, void *ptr, void *data)
>>>>>    		stats->shared += obj->base.size;
>>>>>
>>>>>    	if (USES_FULL_PPGTT(obj->base.dev)) {
>>>>> -		list_for_each_entry(vma, &obj->vma_list, vma_link) {
>>>>> +		i915_gem_obj_for_each_vma(vma, obj) {
>>>>>    			struct i915_hw_ppgtt *ppgtt;
>>>>>
>>>>>    			if (!drm_mm_node_allocated(&vma->node))
>>>>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>>>>> index b77a5d84eac2..0406a020dfcc 100644
>>>>> --- a/drivers/gpu/drm/i915/i915_drv.h
>>>>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>>>>> @@ -2852,6 +2852,12 @@ struct drm_i915_gem_object *i915_gem_object_create_from_data(
>>>>>    void i915_gem_free_object(struct drm_gem_object *obj);
>>>>>    void i915_gem_vma_destroy(struct i915_vma *vma);
>>>>>
>>>>> +#define i915_gem_obj_for_each_vma(vma, obj) \
>>>>> +	for (WARN_ON_ONCE(!mutex_is_locked(&(obj)->base.dev->struct_mutex)), \
>>>>> +	     vma = list_first_entry(&(obj)->vma_list, typeof(*vma), vma_link);\
>>>>> +	     &vma->vma_link != (&(obj)->vma_list); \
>>>>> +	     vma = list_next_entry(vma, vma_link))
>>>>> +
>>>>
>>>>
>>>> Unfortunately error capture is not happy with this approach. Can't even see
>>>> that error capture attempts to grab the mutex anywhere.
>>>>
>>>> So what? Drop the idea or add a "doing error capture" flag somewhere?
>>>
>>> Fix the bugs. Not surprise at all that we've screwed this up all over the
>>> place ;-) Afaics modeset code isn't much better either ...
>>
>> Ok I'll drop this patch then since the series contains fixes to all but one
>> related issues. The remaining one is then:
>>
>> [   17.370366] ------------[ cut here ]------------
>> [   17.375633] WARNING: CPU: 0 PID: 1128 at drivers/gpu/drm/i915/i915_gem.c:5166 i915_gem_obj_ggtt_offset_view+0x10f/0x120 [i915]()
>> [   17.388879] WARN_ON_ONCE(!mutex_is_locked(&(o)->base.dev->struct_mutex))
>> [   17.396364] Modules linked in: hid_generic usbhid coretemp asix usbnet libphy mii i915 gpio_lynxpoint i2c_hid hid video i2c_algo_bit drm_kms_helper acpi_pad drm lpc_ich mfd_core nls_iso8859_1 e1000e ptp ahci libahci pps_core
>> [   17.419484] CPU: 0 PID: 1128 Comm: Xorg Tainted: G     U          4.4.0-rc8-160107+ #105
>> [   17.428771] Hardware name: Intel Corporation Broadwell Client platform/WhiteTip Mountain 1, BIOS BDW-E1R1.86C.0080.R01.1406120446 06/12/2014
>> [   17.443161]  ffffffffa0227790 ffff8800a98439b8 ffffffff81280d82 ffff8800a9843a00
>> [   17.451677]  ffff8800a98439f0 ffffffff81049c8c ffff8801495d0000 ffff8800aa934900
>> [   17.460166]  ffff8801495d8668 ffffffffa0242520 ffff8800aacea000 ffff8800a9843a50
>> [   17.468674] Call Trace:
>> [   17.471470]  [<ffffffff81280d82>] dump_stack+0x4b/0x79
>> [   17.477355]  [<ffffffff81049c8c>] warn_slowpath_common+0x7c/0xc0
>> [   17.484255]  [<ffffffff81049d17>] warn_slowpath_fmt+0x47/0x50
>> [   17.490869]  [<ffffffffa018f7ef>] i915_gem_obj_ggtt_offset_view+0x10f/0x120 [i915]
>> [   17.499572]  [<ffffffffa01a7290>] ? gen9_write8+0x2d0/0x2d0 [i915]
>> [   17.506663]  [<ffffffffa01bdbfe>] ironlake_update_primary_plane+0x1ee/0x3a0 [i915]
>> [   17.515358]  [<ffffffffa01ace1f>] intel_plane_atomic_update+0x5f/0x70 [i915]
>> [   17.523391]  [<ffffffffa00ef122>] drm_atomic_helper_commit_planes_on_crtc+0x142/0x230 [drm_kms_helper]
>> [   17.534063]  [<ffffffffa01c1744>] intel_atomic_commit+0x424/0x2270 [i915]
>> [   17.541763]  [<ffffffff814ee04a>] ? __ww_mutex_lock+0x4a/0x82
>> [   17.548355]  [<ffffffffa0097edb>] ? drm_atomic_check_only+0x12b/0x5e0 [drm]
>> [   17.556352]  [<ffffffffa0097a07>] ? drm_atomic_set_crtc_for_connector+0x77/0xf0 [drm]
>> [   17.565346]  [<ffffffffa00983c2>] drm_atomic_commit+0x32/0x50 [drm]
>> [   17.572553]  [<ffffffffa00ef782>] drm_atomic_helper_set_config+0x72/0xb0 [drm_kms_helper]
>> [   17.581954]  [<ffffffffa0088e8f>] drm_mode_set_config_internal+0x5f/0x100 [drm]
>> [   17.590313]  [<ffffffffa008cdc8>] drm_mode_setcrtc+0xd8/0x500 [drm]
>> [   17.597491]  [<ffffffffa007f5d8>] drm_ioctl+0x258/0x4f0 [drm]
>> [   17.604065]  [<ffffffff810c34ac>] ? unlock_page+0x4c/0x50
>> [   17.610245]  [<ffffffffa008ccf0>] ? drm_mode_setplane+0x1c0/0x1c0 [drm]
>> [   17.617844]  [<ffffffff8111597d>] do_vfs_ioctl+0x2cd/0x4a0
>> [   17.624137]  [<ffffffff81052572>] ? recalc_sigpending+0x12/0x40
>> [   17.630943]  [<ffffffff8111eb32>] ? __fget+0x72/0xb0
>> [   17.636645]  [<ffffffff81115b8c>] SyS_ioctl+0x3c/0x70
>> [   17.642448]  [<ffffffff81055301>] ? SyS_rt_sigprocmask+0x81/0xa0
>> [   17.649334]  [<ffffffff814f0017>] entry_SYSCALL_64_fastpath+0x12/0x6a
>> [   17.656740] ---[ end trace 3f29190006c97826 ]---
>>
>> Would you like a BZ for this or maybe it is known already?
>
> Maarten is working on this, or at least we're tracking it already in
> VIZ-7000.
>
> Can you pls coordinate with Maarten to make sure the final "enable the
> warning" patch lands only once all the bits are in?

Oh I dropped that patch due the error capture problem - do you have a 
suggestion how to handle that?

Regards,

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

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

* Re: ✗ failure:  Fi.CI.BAT
  2016-01-19 14:09       ` Ville Syrjälä
@ 2016-01-19 16:43         ` Daniel Vetter
  0 siblings, 0 replies; 124+ messages in thread
From: Daniel Vetter @ 2016-01-19 16:43 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: Sarvela, Tomi P, intel-gfx

On Tue, Jan 19, 2016 at 04:09:48PM +0200, Ville Syrjälä wrote:
> On Tue, Jan 19, 2016 at 02:58:14PM +0100, Daniel Vetter wrote:
> > On Thu, Jan 14, 2016 at 04:29:14PM +0200, Ville Syrjälä wrote:
> > > On Thu, Jan 14, 2016 at 02:20:40PM -0000, Patchwork wrote:
> > > > == Summary ==
> > > > 
> > > > Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest
> > > > 
> > > > Test gem_basic:
> > > >         Subgroup create-close:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > > Test gem_cpu_reloc:
> > > >         Subgroup basic:
> > > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > > Test gem_ctx_param_basic:
> > > >         Subgroup basic:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup invalid-param-set:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup non-root-set-no-zeromap:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup root-set-no-zeromap-disabled:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > > Test gem_mmap:
> > > >         Subgroup basic:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > > Test gem_mmap_gtt:
> > > >         Subgroup basic-read:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup basic-write:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > > Test gem_storedw_loop:
> > > >         Subgroup basic-render:
> > > >                 dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
> > > >                 dmesg-warn -> PASS       (bdw-nuci7)
> > > >                 dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
> > > > Test kms_addfb_basic:
> > > >         Subgroup addfb25-modifier-no-flag:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup addfb25-x-tiled-mismatch:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup addfb25-yf-tiled:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup bad-pitch-1024:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup bad-pitch-63:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup bad-pitch-999:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup clobberred-modifier:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup too-high:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup too-wide:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup unused-offsets:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > > Test kms_flip:
> > > >         Subgroup basic-plain-flip:
> > > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > > Test kms_pipe_crc_basic:
> > > >         Subgroup nonblocking-crc-pipe-a-frame-sequence:
> > > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > >         Subgroup read-crc-pipe-b-frame-sequence:
> > > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > > Test prime_self_import:
> > > >         Subgroup basic-with_two_bos:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > 
> > > Looks like the GPU died or something on that skl. Can't imagine it being related
> > > to watermark patches.
> > 
> > Mika created a bugzilla for this since this isn't the first time this
> > happened. We have 2 instances of a failure with matching syptoms in normal
> > -nightly CI runs already:
> > 
> > https://bugs.freedesktop.org/show_bug.cgi?id=93768
> > 
> > In the future if you have a case where an entire machine dies it's useful
> > to look at the machine history. That shows you the results for the last 50
> > runs on only that machine for any testcase where results changed. That
> > helps in figuring out whether there's something wrong with that machine,
> > or whether there might indeed be trouble with your patch set.
> 
> Sadly the link to the machine history is busted for patchwork CI results,
> so doing that is somewhat more tedious than it should be. Might be a
> good idea to fix all the links once and for all. Cc:ing Tomi...

Yeah it only works in the master CI overview, both for the long-term view
for machines and for testcases.

I'll paste you the link to the overall howto on the internal wiki page in
private.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: ✗ failure:  Fi.CI.BAT
  2016-01-19 13:58     ` Daniel Vetter
@ 2016-01-19 14:09       ` Ville Syrjälä
  2016-01-19 16:43         ` Daniel Vetter
  0 siblings, 1 reply; 124+ messages in thread
From: Ville Syrjälä @ 2016-01-19 14:09 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Sarvela, Tomi P, intel-gfx

On Tue, Jan 19, 2016 at 02:58:14PM +0100, Daniel Vetter wrote:
> On Thu, Jan 14, 2016 at 04:29:14PM +0200, Ville Syrjälä wrote:
> > On Thu, Jan 14, 2016 at 02:20:40PM -0000, Patchwork wrote:
> > > == Summary ==
> > > 
> > > Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest
> > > 
> > > Test gem_basic:
> > >         Subgroup create-close:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > Test gem_cpu_reloc:
> > >         Subgroup basic:
> > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > Test gem_ctx_param_basic:
> > >         Subgroup basic:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup invalid-param-set:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup non-root-set-no-zeromap:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup root-set-no-zeromap-disabled:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > Test gem_mmap:
> > >         Subgroup basic:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > Test gem_mmap_gtt:
> > >         Subgroup basic-read:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup basic-write:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > Test gem_storedw_loop:
> > >         Subgroup basic-render:
> > >                 dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
> > >                 dmesg-warn -> PASS       (bdw-nuci7)
> > >                 dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
> > > Test kms_addfb_basic:
> > >         Subgroup addfb25-modifier-no-flag:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup addfb25-x-tiled-mismatch:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup addfb25-yf-tiled:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup bad-pitch-1024:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup bad-pitch-63:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup bad-pitch-999:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup clobberred-modifier:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup too-high:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup too-wide:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup unused-offsets:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > Test kms_flip:
> > >         Subgroup basic-plain-flip:
> > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > Test kms_pipe_crc_basic:
> > >         Subgroup nonblocking-crc-pipe-a-frame-sequence:
> > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > >         Subgroup read-crc-pipe-b-frame-sequence:
> > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > Test prime_self_import:
> > >         Subgroup basic-with_two_bos:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > 
> > Looks like the GPU died or something on that skl. Can't imagine it being related
> > to watermark patches.
> 
> Mika created a bugzilla for this since this isn't the first time this
> happened. We have 2 instances of a failure with matching syptoms in normal
> -nightly CI runs already:
> 
> https://bugs.freedesktop.org/show_bug.cgi?id=93768
> 
> In the future if you have a case where an entire machine dies it's useful
> to look at the machine history. That shows you the results for the last 50
> runs on only that machine for any testcase where results changed. That
> helps in figuring out whether there's something wrong with that machine,
> or whether there might indeed be trouble with your patch set.

Sadly the link to the machine history is busted for patchwork CI results,
so doing that is somewhat more tedious than it should be. Might be a
good idea to fix all the links once and for all. Cc:ing Tomi...

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: ✗ failure:  Fi.CI.BAT
  2016-01-14 14:29   ` Ville Syrjälä
@ 2016-01-19 13:58     ` Daniel Vetter
  2016-01-19 14:09       ` Ville Syrjälä
  0 siblings, 1 reply; 124+ messages in thread
From: Daniel Vetter @ 2016-01-19 13:58 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

On Thu, Jan 14, 2016 at 04:29:14PM +0200, Ville Syrjälä wrote:
> On Thu, Jan 14, 2016 at 02:20:40PM -0000, Patchwork wrote:
> > == Summary ==
> > 
> > Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest
> > 
> > Test gem_basic:
> >         Subgroup create-close:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> > Test gem_cpu_reloc:
> >         Subgroup basic:
> >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > Test gem_ctx_param_basic:
> >         Subgroup basic:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup invalid-param-set:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup non-root-set-no-zeromap:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup root-set-no-zeromap-disabled:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> > Test gem_mmap:
> >         Subgroup basic:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> > Test gem_mmap_gtt:
> >         Subgroup basic-read:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup basic-write:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> > Test gem_storedw_loop:
> >         Subgroup basic-render:
> >                 dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
> >                 dmesg-warn -> PASS       (bdw-nuci7)
> >                 dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
> > Test kms_addfb_basic:
> >         Subgroup addfb25-modifier-no-flag:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup addfb25-x-tiled-mismatch:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup addfb25-yf-tiled:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup bad-pitch-1024:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup bad-pitch-63:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup bad-pitch-999:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup clobberred-modifier:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup too-high:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup too-wide:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup unused-offsets:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> > Test kms_flip:
> >         Subgroup basic-plain-flip:
> >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > Test kms_pipe_crc_basic:
> >         Subgroup nonblocking-crc-pipe-a-frame-sequence:
> >                 pass       -> DMESG-FAIL (skl-i7k-2)
> >         Subgroup read-crc-pipe-b-frame-sequence:
> >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > Test prime_self_import:
> >         Subgroup basic-with_two_bos:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> 
> Looks like the GPU died or something on that skl. Can't imagine it being related
> to watermark patches.

Mika created a bugzilla for this since this isn't the first time this
happened. We have 2 instances of a failure with matching syptoms in normal
-nightly CI runs already:

https://bugs.freedesktop.org/show_bug.cgi?id=93768

In the future if you have a case where an entire machine dies it's useful
to look at the machine history. That shows you the results for the last 50
runs on only that machine for any testcase where results changed. That
helps in figuring out whether there's something wrong with that machine,
or whether there might indeed be trouble with your patch set.

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

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

* Re: ✗ failure:  Fi.CI.BAT
  2016-01-14 11:31   ` Nick Hoath
@ 2016-01-19  9:08     ` Daniel Vetter
  0 siblings, 0 replies; 124+ messages in thread
From: Daniel Vetter @ 2016-01-19  9:08 UTC (permalink / raw)
  To: Nick Hoath; +Cc: intel-gfx

On Thu, Jan 14, 2016 at 11:31:07AM +0000, Nick Hoath wrote:
> On 14/01/2016 07:20, Patchwork wrote:
> >== Summary ==

Our BKM is to link to bugzilla entries to make sure these are all real
failures which are tracked already. Otherwise stuff falls through the
cracks.

> >
> >Built on 058740f8fced6851aeda34f366f5330322cd585f drm-intel-nightly: 2016y-01m-13d-17h-07m-44s UTC integration manifest
> >
> >Test gem_ctx_basic:
> >                 pass       -> FAIL       (bdw-ultra)
> 
> Test failed to load - not patch related
> 
> >Test gem_ctx_param_basic:
> >         Subgroup non-root-set:
> >                 pass       -> DMESG-WARN (bsw-nuc-2)
> 
> gem driver allocated a poisoned slab - not patch related
> 
> >Test kms_flip:
> >         Subgroup basic-flip-vs-dpms:
> >                 pass       -> SKIP       (bsw-nuc-2)
> 
> test reqs not met - not patch related

basic-flip-vs-dpms MUST always work. Well except if you have a chip with
GT only where the display is fused off. I expect more serious analysis
instead of casually shrugging issues away as "not my problem".

Same sloppy analysis with the others imo.
-Daniel


> 
> >                 dmesg-warn -> PASS       (ilk-hp8440p)
> 
> warn to PASS
> 
> >
> >bdw-nuci7        total:138  pass:128  dwarn:1   dfail:0   fail:0   skip:9
> >bdw-ultra        total:138  pass:131  dwarn:0   dfail:0   fail:1   skip:6
> >bsw-nuc-2        total:141  pass:113  dwarn:3   dfail:0   fail:0   skip:25
> >hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7
> >hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4
> >ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37
> >ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6
> >skl-i5k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8
> >skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8
> >snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14
> >snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13
> >
> >Results at /archive/results/CI_IGT_test/Patchwork_1174/
> >
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: ✗ failure:  Fi.CI.BAT
  2016-01-14 15:00   ` Ville Syrjälä
@ 2016-01-15 12:03     ` Chris Wilson
  0 siblings, 0 replies; 124+ messages in thread
From: Chris Wilson @ 2016-01-15 12:03 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

On Thu, Jan 14, 2016 at 05:00:02PM +0200, Ville Syrjälä wrote:
> On Thu, Jan 14, 2016 at 02:49:45PM -0000, Patchwork wrote:
> > == Summary ==
> > 
> > Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest
> > 
> > Test gem_ctx_basic:
> >                 pass       -> FAIL       (bdw-ultra)
> 
> "Returncode -15" and nothing more. Weird.

Strikes me as a bug in the testrunner. That's not one of ours.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ failure: Fi.CI.BAT
  2016-01-14 15:56 [PATCH v5 1/1] drm/i915/bxt: Check BIOS RC6 setup before enabling RC6 Sagar Arun Kamble
@ 2016-01-14 16:30 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-14 16:30 UTC (permalink / raw)
  To: sagar.a.kamble; +Cc: intel-gfx

== Summary ==

HEAD is now at 8fb2fee drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest
Applying: drm/i915/bxt: Check BIOS RC6 setup before enabling RC6
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/i915_drv.h
M	drivers/gpu/drm/i915/i915_gem_stolen.c
M	drivers/gpu/drm/i915/i915_reg.h
M	drivers/gpu/drm/i915/intel_drv.h
M	drivers/gpu/drm/i915/intel_pm.c
M	drivers/gpu/drm/i915/intel_uncore.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_uncore.c
Auto-merging drivers/gpu/drm/i915/intel_pm.c
Auto-merging drivers/gpu/drm/i915/intel_drv.h
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_drv.h
Auto-merging drivers/gpu/drm/i915/i915_reg.h
Auto-merging drivers/gpu/drm/i915/i915_gem_stolen.c
Auto-merging drivers/gpu/drm/i915/i915_drv.h
Patch failed at 0001 drm/i915/bxt: Check BIOS RC6 setup before enabling RC6

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-14 15:12 [PATCH] drm/i915/bios: Fix the sequence size calculations for MIPI seq v3 Jani Nikula
@ 2016-01-14 16:20 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-14 16:20 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Summary ==

Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest

Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
                dmesg-warn -> PASS       (bdw-nuci7)
                dmesg-warn -> PASS       (bdw-ultra)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                pass       -> DMESG-WARN (ilk-hp8440p)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-b:
                pass       -> DMESG-WARN (bdw-ultra)

bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:131  dwarn:1   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
skl-i5k-2        total:141  pass:132  dwarn:1   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

HANGED skl-i7k-2 in Patchwork_1190/skl-i7k-2/tests/115.json:igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b Patchwork_1190/skl-i7k-2/tests/116.json:igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c Patchwork_1190/skl-i7k-2/tests/117.json:igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a Patchwork_1190/skl-i7k-2/tests/118.json:igt@gem_ctx_create@basic Patchwork_1190/skl-i7k-2/tests/119.json:igt@gem_ctx_param_basic@invalid-ctx-get Patchwork_1190/skl-i7k-2/tests/120.json:igt@kms_addfb_basic@size-max Patchwork_1190/skl-i7k-2/tests/121.json:igt@kms_addfb_basic@no-handle Patchwork_1190/skl-i7k-2/tests/122.json:igt@kms_pipe_crc_basic@read-crc-pipe-a Patchwork_1190/skl-i7k-2/tests/123.json:igt@kms_pipe_crc_basic@read-crc-pipe-c Patchwork_1190/skl-i7k-2/tests/124.json:igt@kms_pipe_crc_basic@read-crc-pipe-b Patchwork_1190/skl-i7k-2/tests/125.json:igt@kms_addfb_basic@bad-pitch-256 Patchwork_1190/skl-i7k-2/tests/126.json:igt@gem_mmap_gtt@basic-write-gtt Patchwork_1190/skl-i7k-2/tests/127.json:igt@kms_s
 etmode@basic-clone-single-crtc Patchwork_1190/skl-i7k-2/tests/128.json:igt@kms_addfb_basic@addfb25-x-tiled Patchwork_1190/skl-i7k-2/tests/129.json:igt@gem_basic@bad-close Patchwork_1190/skl-i7k-2/tests/130.json:igt@gem_render_linear_blits@basic Patchwork_1190/skl-i7k-2/tests/131.json:igt@gem_mmap_gtt@basic-copy Patchwork_1190/skl-i7k-2/tests/132.json:igt@kms_addfb_basic@small-bo Patchwork_1190/skl-i7k-2/tests/133.json:igt@kms_addfb_basic@basic Patchwork_1190/skl-i7k-2/tests/134.json:igt@kms_flip@basic-flip-vs-modeset Patchwork_1190/skl-i7k-2/tests/135.json:igt@kms_addfb_basic@unused-pitches Patchwork_1190/skl-i7k-2/tests/136.json:igt@kms_addfb_basic@bo-too-small-due-to-tiling Patchwork_1190/skl-i7k-2/tests/137.json:igt@gem_storedw_loop@basic-blt Patchwork_1190/skl-i7k-2/tests/138.json:igt@drv_getparams_basic@basic-eu-total Patchwork_1190/skl-i7k-2/tests/139.json:igt@gem_ctx_param_basic@invalid-ctx-set Patchwork_1190/skl-i7k-2/tests/140.json:igt@kms_pipe_crc_basic@read-crc-pipe-a-fra
 me-sequence

Results at /archive/results/CI_IGT_test/Patchwork_1190/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-14 15:02 [PATCH] drm/i915: Decouple execbuf uAPI from internal implementation Tvrtko Ursulin
@ 2016-01-14 15:49 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-14 15:49 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-gfx

== Summary ==

Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest

Test gem_ctx_basic:
                pass       -> FAIL       (bdw-ultra)
Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
                dmesg-warn -> PASS       (bdw-nuci7)
                dmesg-warn -> PASS       (bdw-ultra)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                pass       -> DMESG-WARN (ilk-hp8440p)

bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:131  dwarn:0   dfail:0   fail:1   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
skl-i5k-2        total:141  pass:132  dwarn:1   dfail:0   fail:0   skip:8  
skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1189/

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

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-14 14:49 ` ✗ failure: Fi.CI.BAT Patchwork
@ 2016-01-14 15:00   ` Ville Syrjälä
  2016-01-15 12:03     ` Chris Wilson
  0 siblings, 1 reply; 124+ messages in thread
From: Ville Syrjälä @ 2016-01-14 15:00 UTC (permalink / raw)
  To: Patchwork; +Cc: intel-gfx

On Thu, Jan 14, 2016 at 02:49:45PM -0000, Patchwork wrote:
> == Summary ==
> 
> Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest
> 
> Test gem_ctx_basic:
>                 pass       -> FAIL       (bdw-ultra)

"Returncode -15" and nothing more. Weird.

> Test gem_storedw_loop:
>         Subgroup basic-render:
>                 dmesg-warn -> PASS       (bdw-nuci7)
>                 dmesg-warn -> PASS       (bdw-ultra)
> 
> bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
> bdw-ultra        total:138  pass:131  dwarn:0   dfail:0   fail:1   skip:6  
> bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
> hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
> hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
> ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37 
> ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
> skl-i5k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
> snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
> snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 
> 
> Results at /archive/results/CI_IGT_test/Patchwork_1188/

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ failure: Fi.CI.BAT
  2016-01-14 13:22 [PATCH 0/8] drm/i915: Some more fb offsets[] prep stuff ville.syrjala
@ 2016-01-14 14:49 ` Patchwork
  2016-01-14 15:00   ` Ville Syrjälä
  0 siblings, 1 reply; 124+ messages in thread
From: Patchwork @ 2016-01-14 14:49 UTC (permalink / raw)
  To: ville.syrjala; +Cc: intel-gfx

== Summary ==

Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest

Test gem_ctx_basic:
                pass       -> FAIL       (bdw-ultra)
Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (bdw-nuci7)
                dmesg-warn -> PASS       (bdw-ultra)

bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:131  dwarn:0   dfail:0   fail:1   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
skl-i5k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1188/

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

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-14 14:20 ` ✗ failure: Fi.CI.BAT Patchwork
@ 2016-01-14 14:29   ` Ville Syrjälä
  2016-01-19 13:58     ` Daniel Vetter
  0 siblings, 1 reply; 124+ messages in thread
From: Ville Syrjälä @ 2016-01-14 14:29 UTC (permalink / raw)
  To: Patchwork; +Cc: intel-gfx

On Thu, Jan 14, 2016 at 02:20:40PM -0000, Patchwork wrote:
> == Summary ==
> 
> Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest
> 
> Test gem_basic:
>         Subgroup create-close:
>                 pass       -> DMESG-WARN (skl-i7k-2)
> Test gem_cpu_reloc:
>         Subgroup basic:
>                 pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_ctx_param_basic:
>         Subgroup basic:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup invalid-param-set:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup non-root-set-no-zeromap:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup root-set-no-zeromap-disabled:
>                 pass       -> DMESG-WARN (skl-i7k-2)
> Test gem_mmap:
>         Subgroup basic:
>                 pass       -> DMESG-WARN (skl-i7k-2)
> Test gem_mmap_gtt:
>         Subgroup basic-read:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup basic-write:
>                 pass       -> DMESG-WARN (skl-i7k-2)
> Test gem_storedw_loop:
>         Subgroup basic-render:
>                 dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
>                 dmesg-warn -> PASS       (bdw-nuci7)
>                 dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
> Test kms_addfb_basic:
>         Subgroup addfb25-modifier-no-flag:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup addfb25-x-tiled-mismatch:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup addfb25-yf-tiled:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup bad-pitch-1024:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup bad-pitch-63:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup bad-pitch-999:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup clobberred-modifier:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup too-high:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup too-wide:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup unused-offsets:
>                 pass       -> DMESG-WARN (skl-i7k-2)
> Test kms_flip:
>         Subgroup basic-plain-flip:
>                 pass       -> DMESG-FAIL (skl-i7k-2)
> Test kms_pipe_crc_basic:
>         Subgroup nonblocking-crc-pipe-a-frame-sequence:
>                 pass       -> DMESG-FAIL (skl-i7k-2)
>         Subgroup read-crc-pipe-b-frame-sequence:
>                 pass       -> DMESG-FAIL (skl-i7k-2)
> Test prime_self_import:
>         Subgroup basic-with_two_bos:
>                 pass       -> DMESG-WARN (skl-i7k-2)

Looks like the GPU died or something on that skl. Can't imagine it being related
to watermark patches.

Unfortunately these didn't cure the recent underrun regressions from
the ilk-ivb machines. So seems like there's something more busted
somewhere.

> 
> bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
> bdw-ultra        total:138  pass:131  dwarn:1   dfail:0   fail:0   skip:6  
> bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
> hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
> hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
> ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37 
> ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
> skl-i5k-2        total:141  pass:132  dwarn:1   dfail:0   fail:0   skip:8  
> skl-i7k-2        total:141  pass:108  dwarn:20  dfail:4   fail:0   skip:8  
> snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
> snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 
> 
> Results at /archive/results/CI_IGT_test/Patchwork_1187/

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ failure: Fi.CI.BAT
  2016-01-14 12:53 [PATCH 1/2] drm/i915: Start WM computation from scratch on ILK-BDW ville.syrjala
@ 2016-01-14 14:20 ` Patchwork
  2016-01-14 14:29   ` Ville Syrjälä
  0 siblings, 1 reply; 124+ messages in thread
From: Patchwork @ 2016-01-14 14:20 UTC (permalink / raw)
  To: ville.syrjala; +Cc: intel-gfx

== Summary ==

Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest

Test gem_basic:
        Subgroup create-close:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_cpu_reloc:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_ctx_param_basic:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup invalid-param-set:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup non-root-set-no-zeromap:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup root-set-no-zeromap-disabled:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap_gtt:
        Subgroup basic-read:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup basic-write:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
                dmesg-warn -> PASS       (bdw-nuci7)
                dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
Test kms_addfb_basic:
        Subgroup addfb25-modifier-no-flag:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup addfb25-x-tiled-mismatch:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup addfb25-yf-tiled:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-1024:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-63:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-999:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup clobberred-modifier:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup too-high:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup too-wide:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup unused-offsets:
                pass       -> DMESG-WARN (skl-i7k-2)
Test kms_flip:
        Subgroup basic-plain-flip:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test kms_pipe_crc_basic:
        Subgroup nonblocking-crc-pipe-a-frame-sequence:
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test prime_self_import:
        Subgroup basic-with_two_bos:
                pass       -> DMESG-WARN (skl-i7k-2)

bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:131  dwarn:1   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
skl-i5k-2        total:141  pass:132  dwarn:1   dfail:0   fail:0   skip:8  
skl-i7k-2        total:141  pass:108  dwarn:20  dfail:4   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1187/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-14 10:49 [PATCH] drm/i915: Clear pending reset requests during suspend Arun Siluvery
@ 2016-01-14 12:20 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-14 12:20 UTC (permalink / raw)
  To: arun.siluvery; +Cc: intel-gfx

== Summary ==

Built on 058740f8fced6851aeda34f366f5330322cd585f drm-intel-nightly: 2016y-01m-13d-17h-07m-44s UTC integration manifest

Test gem_ctx_basic:
                pass       -> FAIL       (bdw-ultra)

bdw-nuci7        total:138  pass:128  dwarn:1   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:131  dwarn:0   dfail:0   fail:1   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1184/

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

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-14  7:20 ` ✗ failure: Fi.CI.BAT Patchwork
@ 2016-01-14 11:31   ` Nick Hoath
  2016-01-19  9:08     ` Daniel Vetter
  0 siblings, 1 reply; 124+ messages in thread
From: Nick Hoath @ 2016-01-14 11:31 UTC (permalink / raw)
  To: Patchwork; +Cc: intel-gfx

On 14/01/2016 07:20, Patchwork wrote:
> == Summary ==
>
> Built on 058740f8fced6851aeda34f366f5330322cd585f drm-intel-nightly: 2016y-01m-13d-17h-07m-44s UTC integration manifest
>
> Test gem_ctx_basic:
>                  pass       -> FAIL       (bdw-ultra)

Test failed to load - not patch related

> Test gem_ctx_param_basic:
>          Subgroup non-root-set:
>                  pass       -> DMESG-WARN (bsw-nuc-2)

gem driver allocated a poisoned slab - not patch related

> Test kms_flip:
>          Subgroup basic-flip-vs-dpms:
>                  pass       -> SKIP       (bsw-nuc-2)

test reqs not met - not patch related

>                  dmesg-warn -> PASS       (ilk-hp8440p)

warn to PASS

>
> bdw-nuci7        total:138  pass:128  dwarn:1   dfail:0   fail:0   skip:9
> bdw-ultra        total:138  pass:131  dwarn:0   dfail:0   fail:1   skip:6
> bsw-nuc-2        total:141  pass:113  dwarn:3   dfail:0   fail:0   skip:25
> hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7
> hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4
> ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37
> ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6
> skl-i5k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8
> skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8
> snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14
> snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13
>
> Results at /archive/results/CI_IGT_test/Patchwork_1174/
>

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-14  6:16 [PATCH v14 0/11] Support for creating/using Stolen memory backed objects ankitprasad.r.sharma
@ 2016-01-14 11:20 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-14 11:20 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Summary ==

Built on 058740f8fced6851aeda34f366f5330322cd585f drm-intel-nightly: 2016y-01m-13d-17h-07m-44s UTC integration manifest

Test gem_pread:
        Subgroup basic:
                pass       -> FAIL       (snb-dellxps)
Test gem_pwrite:
        Subgroup basic:
                pass       -> FAIL       (snb-dellxps)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                dmesg-warn -> PASS       (ilk-hp8440p)

bdw-ultra        total:138  pass:132  dwarn:0   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
skl-i5k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:120  dwarn:5   dfail:0   fail:2   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1182/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-13 17:28 [PATCH 00/20] TDR/watchdog support for gen8 Arun Siluvery
@ 2016-01-14  8:30 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-14  8:30 UTC (permalink / raw)
  To: Tomas Elf; +Cc: intel-gfx

== Summary ==

HEAD is now at 058740f drm-intel-nightly: 2016y-01m-13d-17h-07m-44s UTC integration manifest
Applying: drm/i915: Make i915_gem_reset_ring_status() public
Applying: drm/i915: Generalise common GPU engine reset request/unrequest code
Applying: drm/i915: TDR / per-engine hang recovery support for gen8.
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/i915_dma.c
M	drivers/gpu/drm/i915/i915_irq.c
M	drivers/gpu/drm/i915/intel_lrc.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_lrc.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_lrc.c
Auto-merging drivers/gpu/drm/i915/i915_irq.c
Auto-merging drivers/gpu/drm/i915/i915_dma.c
Patch failed at 0003 drm/i915: TDR / per-engine hang recovery support for gen8.

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-13 16:19 [PATCH v10] drm/i915: Extend LRC pinning to cover GPU context writeback Nick Hoath
@ 2016-01-14  7:20 ` Patchwork
  2016-01-14 11:31   ` Nick Hoath
  0 siblings, 1 reply; 124+ messages in thread
From: Patchwork @ 2016-01-14  7:20 UTC (permalink / raw)
  To: Nick Hoath; +Cc: intel-gfx

== Summary ==

Built on 058740f8fced6851aeda34f366f5330322cd585f drm-intel-nightly: 2016y-01m-13d-17h-07m-44s UTC integration manifest

Test gem_ctx_basic:
                pass       -> FAIL       (bdw-ultra)
Test gem_ctx_param_basic:
        Subgroup non-root-set:
                pass       -> DMESG-WARN (bsw-nuc-2)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                pass       -> SKIP       (bsw-nuc-2)
                dmesg-warn -> PASS       (ilk-hp8440p)

bdw-nuci7        total:138  pass:128  dwarn:1   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:131  dwarn:0   dfail:0   fail:1   skip:6  
bsw-nuc-2        total:141  pass:113  dwarn:3   dfail:0   fail:0   skip:25 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
skl-i5k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1174/

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

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

* Re: ✗ failure:   Fi.CI.BAT
  2016-01-13 16:17   ` Daniel Vetter
@ 2016-01-13 18:03     ` Chris Wilson
  0 siblings, 0 replies; 124+ messages in thread
From: Chris Wilson @ 2016-01-13 18:03 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Jani Nikula, intel-gfx

On Wed, Jan 13, 2016 at 05:17:03PM +0100, Daniel Vetter wrote:
> On Wed, Jan 13, 2016 at 03:13:40PM -0000, Patchwork wrote:
> > == Summary ==
> > 
> > Built on 4d09810b01441f9124c072a866f608b748f92f6c drm-intel-nightly: 2016y-01m-13d-12h-32m-08s UTC integration manifest
> > 
> > Test gem_ctx_basic:
> >                 pass       -> FAIL       (hsw-gt2)
> 
> This seems to be a complete fluke. I looked at detailed results and
> there's simply no output. Long-term history doesn't show a failure either.
> 
> I think we can shrug this one off (for now at least).
> 
> > Test gem_storedw_loop:
> >         Subgroup basic-render:
> >                 dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
> > Test kms_pipe_crc_basic:
> >         Subgroup read-crc-pipe-c:
> >                 pass       -> DMESG-WARN (bdw-ultra)
> 
> https://bugs.freedesktop.org/show_bug.cgi?id=93699
> 
> So looks good, I'll apply the patch.

It still does a blocking context-close when all it need do is keep the
last-context pinned until replaced.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: ✗ failure:  Fi.CI.BAT
  2016-01-13 15:13 ` ✗ failure: Fi.CI.BAT Patchwork
@ 2016-01-13 16:17   ` Daniel Vetter
  2016-01-13 18:03     ` Chris Wilson
  0 siblings, 1 reply; 124+ messages in thread
From: Daniel Vetter @ 2016-01-13 16:17 UTC (permalink / raw)
  To: Patchwork; +Cc: Jani Nikula, intel-gfx

On Wed, Jan 13, 2016 at 03:13:40PM -0000, Patchwork wrote:
> == Summary ==
> 
> Built on 4d09810b01441f9124c072a866f608b748f92f6c drm-intel-nightly: 2016y-01m-13d-12h-32m-08s UTC integration manifest
> 
> Test gem_ctx_basic:
>                 pass       -> FAIL       (hsw-gt2)

This seems to be a complete fluke. I looked at detailed results and
there's simply no output. Long-term history doesn't show a failure either.

I think we can shrug this one off (for now at least).

> Test gem_storedw_loop:
>         Subgroup basic-render:
>                 dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
> Test kms_pipe_crc_basic:
>         Subgroup read-crc-pipe-c:
>                 pass       -> DMESG-WARN (bdw-ultra)

https://bugs.freedesktop.org/show_bug.cgi?id=93699

So looks good, I'll apply the patch.
-Daniel

> 
> bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
> bdw-ultra        total:138  pass:131  dwarn:1   dfail:0   fail:0   skip:6  
> bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
> hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
> hsw-gt2          total:141  pass:136  dwarn:0   dfail:0   fail:1   skip:4  
> hsw-xps12        total:138  pass:133  dwarn:1   dfail:0   fail:0   skip:4  
> ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
> ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
> skl-i5k-2        total:141  pass:132  dwarn:1   dfail:0   fail:0   skip:8  
> skl-i7k-2        total:141  pass:132  dwarn:1   dfail:0   fail:0   skip:8  
> snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
> snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 
> 
> Results at /archive/results/CI_IGT_test/Patchwork_1170/
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-13 14:35 [PATCH] drm/i915/dp: fall back to 18 bpp when sink capability is unknown Jani Nikula
@ 2016-01-13 15:13 ` Patchwork
  2016-01-13 16:17   ` Daniel Vetter
  0 siblings, 1 reply; 124+ messages in thread
From: Patchwork @ 2016-01-13 15:13 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Summary ==

Built on 4d09810b01441f9124c072a866f608b748f92f6c drm-intel-nightly: 2016y-01m-13d-12h-32m-08s UTC integration manifest

Test gem_ctx_basic:
                pass       -> FAIL       (hsw-gt2)
Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-c:
                pass       -> DMESG-WARN (bdw-ultra)

bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:131  dwarn:1   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:136  dwarn:0   dfail:0   fail:1   skip:4  
hsw-xps12        total:138  pass:133  dwarn:1   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
skl-i5k-2        total:141  pass:132  dwarn:1   dfail:0   fail:0   skip:8  
skl-i7k-2        total:141  pass:132  dwarn:1   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1170/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-13 12:52 [PATCH] drm/i915: Fix for reserved space WARN_ON when ring begin fails John.C.Harrison
@ 2016-01-13 13:49 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-13 13:49 UTC (permalink / raw)
  To: John.C.Harrison; +Cc: intel-gfx

== Summary ==

Built on 4d09810b01441f9124c072a866f608b748f92f6c drm-intel-nightly: 2016y-01m-13d-12h-32m-08s UTC integration manifest

Test gem_basic:
        Subgroup create-close:
                pass       -> DMESG-WARN (skl-i5k-2)
Test gem_cpu_reloc:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
Test gem_ctx_param_basic:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup invalid-param-set:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup non-root-set-no-zeromap:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup root-set-no-zeromap-disabled:
                pass       -> DMESG-WARN (skl-i5k-2)
Test gem_mmap:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i5k-2)
Test gem_mmap_gtt:
        Subgroup basic-read:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup basic-write:
                pass       -> DMESG-WARN (skl-i5k-2)
Test gem_storedw_loop:
        Subgroup basic-render:
                pass       -> DMESG-WARN (skl-i5k-2) UNSTABLE
                pass       -> DMESG-WARN (bdw-nuci7)
                pass       -> DMESG-WARN (bdw-ultra)
Test kms_addfb_basic:
        Subgroup addfb25-modifier-no-flag:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup addfb25-x-tiled-mismatch:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup addfb25-yf-tiled:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup bad-pitch-1024:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup bad-pitch-63:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup bad-pitch-999:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup clobberred-modifier:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup too-high:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup too-wide:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup unused-offsets:
                pass       -> DMESG-WARN (skl-i5k-2)
Test kms_flip:
        Subgroup basic-plain-flip:
                pass       -> DMESG-FAIL (skl-i5k-2)
Test kms_pipe_crc_basic:
        Subgroup nonblocking-crc-pipe-a-frame-sequence:
                pass       -> DMESG-FAIL (skl-i5k-2)
        Subgroup read-crc-pipe-b:
                pass       -> DMESG-WARN (ilk-hp8440p)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-FAIL (skl-i5k-2)
Test prime_self_import:
        Subgroup basic-with_two_bos:
                pass       -> DMESG-WARN (skl-i5k-2)

bdw-nuci7        total:138  pass:128  dwarn:1   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:131  dwarn:1   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:99   dwarn:5   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
skl-i5k-2        total:141  pass:107  dwarn:21  dfail:4   fail:0   skip:8  
skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1165/

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

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-13  9:39         ` Daniel Vetter
@ 2016-01-13  9:39           ` Daniel Vetter
  0 siblings, 0 replies; 124+ messages in thread
From: Daniel Vetter @ 2016-01-13  9:39 UTC (permalink / raw)
  To: Mika Kuoppala, annie.j.matheson, Barnes, Jesse; +Cc: intel-gfx

Argh, actually add Annie/Jesse!
-Daniel

On Wed, Jan 13, 2016 at 10:39 AM, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Wed, Jan 13, 2016 at 10:20 AM, Mika Kuoppala
> <mika.kuoppala@linux.intel.com> wrote:
>>> But what with all the pass->dmesg-warn changes above? That's considered
>>> BAT failure too, we can't afford to sprinkle warnings all over ... And
>>> it's a bunch of different machines.
>>>
>>
>> Forgot to address this one in previous mail. This patchset
>> added more debug infra and enabled it for bsw/byt. So assumpion
>> is that it did uncover a real problem thus the warns.
>>
>> Is the policy that if your debug infra reveals problems,
>> you need to fix those problems?
>
> We should discuss this in the next meeting (adding Annie/Jesse for
> that), but personally I think adding new WARN/ERROR noise should never
> result in BAT regressions. If your patch uncovers existing failures
> even in BAT then imo the right approach is to first fix up things,
> then apply the WARN patch to make sure we don't break things. The
> problem is that once you have dmesg noise in a test, then no one will
> notice additional noise and regressions. And that's how we got into
> our mess last summer.
>
> Also dmesg noise is not really acceptable anyway and needs to be fixed
> (Linus/Dave will get grumpy).
>
> If that takes too long because there's lots of warn, then maybe we
> need to first add the new sanity check at debug level, just to help
> with tracking down issues. We might need to improve CI reporting so
> that debug level dmesg is still capture completely for BAT runs.
>
>> If so, there is a chicken and egg problem as you don't
>> always have access to hardware that your debug infra
>> will cover.
>
> Yeah, we need to enable manual submission to CI-machines. Abusing CI
> as a test facility simply means that you're ok with blocking everyone
> else with your CI result spam.
> -Daniel
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-13  9:20       ` Mika Kuoppala
@ 2016-01-13  9:39         ` Daniel Vetter
  2016-01-13  9:39           ` Daniel Vetter
  0 siblings, 1 reply; 124+ messages in thread
From: Daniel Vetter @ 2016-01-13  9:39 UTC (permalink / raw)
  To: Mika Kuoppala; +Cc: intel-gfx

On Wed, Jan 13, 2016 at 10:20 AM, Mika Kuoppala
<mika.kuoppala@linux.intel.com> wrote:
>> But what with all the pass->dmesg-warn changes above? That's considered
>> BAT failure too, we can't afford to sprinkle warnings all over ... And
>> it's a bunch of different machines.
>>
>
> Forgot to address this one in previous mail. This patchset
> added more debug infra and enabled it for bsw/byt. So assumpion
> is that it did uncover a real problem thus the warns.
>
> Is the policy that if your debug infra reveals problems,
> you need to fix those problems?

We should discuss this in the next meeting (adding Annie/Jesse for
that), but personally I think adding new WARN/ERROR noise should never
result in BAT regressions. If your patch uncovers existing failures
even in BAT then imo the right approach is to first fix up things,
then apply the WARN patch to make sure we don't break things. The
problem is that once you have dmesg noise in a test, then no one will
notice additional noise and regressions. And that's how we got into
our mess last summer.

Also dmesg noise is not really acceptable anyway and needs to be fixed
(Linus/Dave will get grumpy).

If that takes too long because there's lots of warn, then maybe we
need to first add the new sanity check at debug level, just to help
with tracking down issues. We might need to improve CI reporting so
that debug level dmesg is still capture completely for BAT runs.

> If so, there is a chicken and egg problem as you don't
> always have access to hardware that your debug infra
> will cover.

Yeah, we need to enable manual submission to CI-machines. Abusing CI
as a test facility simply means that you're ok with blocking everyone
else with your CI result spam.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-12 16:22     ` Daniel Vetter
  2016-01-13  9:16       ` Mika Kuoppala
@ 2016-01-13  9:20       ` Mika Kuoppala
  2016-01-13  9:39         ` Daniel Vetter
  1 sibling, 1 reply; 124+ messages in thread
From: Mika Kuoppala @ 2016-01-13  9:20 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

Daniel Vetter <daniel@ffwll.ch> writes:

> On Mon, Jan 11, 2016 at 02:50:28PM +0200, Mika Kuoppala wrote:
>> Patchwork <patchwork@annarchy.freedesktop.org> writes:
>> 
>> > == Summary ==
>> >
>> > Built on ff88655b3a5467bbc3be8c67d3e05ebf182557d3 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest
>> >
>> > Test gem_storedw_loop:
>> >         Subgroup basic-render:
>> >                 pass       -> DMESG-WARN (skl-i5k-2) UNSTABLE
>> >                 dmesg-warn -> PASS       (bdw-ultra)
>> > Test kms_flip:
>> >         Subgroup basic-flip-vs-dpms:
>> >                 dmesg-warn -> PASS       (ilk-hp8440p)
>> >         Subgroup basic-flip-vs-modeset:
>> >                 pass       -> DMESG-WARN (skl-i5k-2)
>> >                 dmesg-warn -> PASS       (bsw-nuc-2)
>> >                 pass       -> DMESG-WARN (ilk-hp8440p)
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> >         Subgroup basic-flip-vs-wf_vblank:
>> >                 pass       -> DMESG-WARN (byt-nuc)
>> >         Subgroup basic-plain-flip:
>> >                 dmesg-warn -> PASS       (bsw-nuc-2)
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> > Test kms_pipe_crc_basic:
>> >         Subgroup nonblocking-crc-pipe-b:
>> >                 pass       -> DMESG-WARN (byt-nuc)
>> >         Subgroup nonblocking-crc-pipe-c:
>> >                 pass       -> DMESG-WARN (bsw-nuc-2)
>> >         Subgroup read-crc-pipe-a:
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> >         Subgroup read-crc-pipe-b:
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> >         Subgroup read-crc-pipe-b-frame-sequence:
>> >                 pass       -> DMESG-WARN (bdw-ultra)
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> >         Subgroup read-crc-pipe-c:
>> >                 dmesg-warn -> PASS       (bsw-nuc-2)
>> >         Subgroup read-crc-pipe-c-frame-sequence:
>> >                 pass       -> DMESG-WARN (bsw-nuc-2)
>
> But what with all the pass->dmesg-warn changes above? That's considered
> BAT failure too, we can't afford to sprinkle warnings all over ... And
> it's a bunch of different machines.
>

Forgot to address this one in previous mail. This patchset
added more debug infra and enabled it for bsw/byt. So assumpion
is that it did uncover a real problem thus the warns.

Is the policy that if your debug infra reveals problems,
you need to fix those problems?

If so, there is a chicken and egg problem as you don't
always have access to hardware that your debug infra
will cover.

Thanks,
-Mika


>> > Test pm_rpm:
>> >         Subgroup basic-pci-d3-state:
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> >
>> > bdw-ultra        total:138  pass:130  dwarn:1   dfail:0   fail:1
>> > skip:6
>> 
>> Tomi suspected this as a fluke fail. There was no igt stdout nor stderr
>> for this case. We did a rerun and bdw-ultra passed.
>> 
>> -Mika
>> 
>> > bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
>> > byt-nuc          total:141  pass:122  dwarn:4   dfail:0   fail:0   skip:15 
>> > hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
>> > hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
>> > ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
>> > skl-i5k-2        total:141  pass:130  dwarn:3   dfail:0   fail:0   skip:8  
>> > skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
>> > snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
>> > snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 
>> >
>> > HANGED ivb-t430s in igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b
>
> So is killing a machine ... pretty sure this is new-ish.
> -Daniel
>
>
>> >
>> > Results at /archive/results/CI_IGT_test/Patchwork_1116/
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-12 16:22     ` Daniel Vetter
@ 2016-01-13  9:16       ` Mika Kuoppala
  2016-01-13  9:20       ` Mika Kuoppala
  1 sibling, 0 replies; 124+ messages in thread
From: Mika Kuoppala @ 2016-01-13  9:16 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

Daniel Vetter <daniel@ffwll.ch> writes:

> On Mon, Jan 11, 2016 at 02:50:28PM +0200, Mika Kuoppala wrote:
>> Patchwork <patchwork@annarchy.freedesktop.org> writes:
>> 
>> > == Summary ==
>> >
>> > Built on ff88655b3a5467bbc3be8c67d3e05ebf182557d3 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest
>> >
>> > Test gem_storedw_loop:
>> >         Subgroup basic-render:
>> >                 pass       -> DMESG-WARN (skl-i5k-2) UNSTABLE
>> >                 dmesg-warn -> PASS       (bdw-ultra)
>> > Test kms_flip:
>> >         Subgroup basic-flip-vs-dpms:
>> >                 dmesg-warn -> PASS       (ilk-hp8440p)
>> >         Subgroup basic-flip-vs-modeset:
>> >                 pass       -> DMESG-WARN (skl-i5k-2)
>> >                 dmesg-warn -> PASS       (bsw-nuc-2)
>> >                 pass       -> DMESG-WARN (ilk-hp8440p)
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> >         Subgroup basic-flip-vs-wf_vblank:
>> >                 pass       -> DMESG-WARN (byt-nuc)
>> >         Subgroup basic-plain-flip:
>> >                 dmesg-warn -> PASS       (bsw-nuc-2)
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> > Test kms_pipe_crc_basic:
>> >         Subgroup nonblocking-crc-pipe-b:
>> >                 pass       -> DMESG-WARN (byt-nuc)
>> >         Subgroup nonblocking-crc-pipe-c:
>> >                 pass       -> DMESG-WARN (bsw-nuc-2)
>> >         Subgroup read-crc-pipe-a:
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> >         Subgroup read-crc-pipe-b:
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> >         Subgroup read-crc-pipe-b-frame-sequence:
>> >                 pass       -> DMESG-WARN (bdw-ultra)
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> >         Subgroup read-crc-pipe-c:
>> >                 dmesg-warn -> PASS       (bsw-nuc-2)
>> >         Subgroup read-crc-pipe-c-frame-sequence:
>> >                 pass       -> DMESG-WARN (bsw-nuc-2)
>
> But what with all the pass->dmesg-warn changes above? That's considered
> BAT failure too, we can't afford to sprinkle warnings all over ... And
> it's a bunch of different machines.
>
>> > Test pm_rpm:
>> >         Subgroup basic-pci-d3-state:
>> >                 dmesg-warn -> PASS       (byt-nuc)
>> >
>> > bdw-ultra        total:138  pass:130  dwarn:1   dfail:0   fail:1
>> > skip:6
>> 
>> Tomi suspected this as a fluke fail. There was no igt stdout nor stderr
>> for this case. We did a rerun and bdw-ultra passed.
>> 
>> -Mika
>> 
>> > bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
>> > byt-nuc          total:141  pass:122  dwarn:4   dfail:0   fail:0   skip:15 
>> > hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
>> > hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
>> > ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
>> > skl-i5k-2        total:141  pass:130  dwarn:3   dfail:0   fail:0   skip:8  
>> > skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
>> > snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
>> > snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 
>> >
>> > HANGED ivb-t430s in igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b
>
> So is killing a machine ... pretty sure this is new-ish.
> -Daniel
>

I did cover my back with this one. This happened on other sets
on the same day and I went and asked Tomi. He said that don't
worry about it. So I didn't.

-Mika

>
>> >
>> > Results at /archive/results/CI_IGT_test/Patchwork_1116/
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ failure: Fi.CI.BAT
  2016-01-06 20:53 [PATCH] drm/i915/guc: Fix a memory leak where guc->execbuf_client is not freed yu.dai
@ 2016-01-13  8:49 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-13  8:49 UTC (permalink / raw)
  To: yu.dai; +Cc: intel-gfx

== Summary ==

Built on 06d0112e293dfdea7f796d4085f755898850947b drm-intel-nightly: 2016y-01m-12d-21h-16m-40s UTC integration manifest

Test gem_basic:
        Subgroup create-close:
                pass       -> DMESG-WARN (skl-i5k-2)
Test gem_cpu_reloc:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
Test gem_ctx_param_basic:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup invalid-param-set:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup non-root-set-no-zeromap:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup root-set-no-zeromap-disabled:
                pass       -> DMESG-WARN (skl-i5k-2)
Test gem_mmap:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i5k-2)
Test gem_mmap_gtt:
        Subgroup basic-read:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup basic-write:
                pass       -> DMESG-WARN (skl-i5k-2)
Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (bdw-ultra)
Test kms_addfb_basic:
        Subgroup addfb25-modifier-no-flag:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup addfb25-x-tiled-mismatch:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup addfb25-yf-tiled:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup bad-pitch-1024:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup bad-pitch-63:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup bad-pitch-999:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup clobberred-modifier:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup too-high:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup too-wide:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup unused-offsets:
                pass       -> DMESG-WARN (skl-i5k-2)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                dmesg-warn -> PASS       (skl-i7k-2)
                dmesg-warn -> PASS       (ilk-hp8440p)
        Subgroup basic-flip-vs-modeset:
                pass       -> DMESG-WARN (ilk-hp8440p)
        Subgroup basic-plain-flip:
                pass       -> DMESG-FAIL (skl-i5k-2)
Test kms_pipe_crc_basic:
        Subgroup nonblocking-crc-pipe-a-frame-sequence:
                pass       -> DMESG-FAIL (skl-i5k-2)
        Subgroup read-crc-pipe-a-frame-sequence:
                fail       -> PASS       (snb-x220t)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-FAIL (skl-i5k-2)
Test prime_self_import:
        Subgroup basic-with_two_bos:
                pass       -> DMESG-WARN (skl-i5k-2)

bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:132  dwarn:0   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
byt-nuc          total:141  pass:123  dwarn:3   dfail:0   fail:0   skip:15 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
skl-i5k-2        total:141  pass:108  dwarn:20  dfail:4   fail:0   skip:8  
skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1158/

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

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-11 11:20 ` ✗ failure: Fi.CI.BAT Patchwork
@ 2016-01-12 16:24   ` Daniel Vetter
  0 siblings, 0 replies; 124+ messages in thread
From: Daniel Vetter @ 2016-01-12 16:24 UTC (permalink / raw)
  To: Patchwork; +Cc: Daniel Vetter, intel-gfx

On Mon, Jan 11, 2016 at 11:20:21AM -0000, Patchwork wrote:
> == Summary ==
> 
> HEAD is now at ff88655 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest
> Applying: drm: kerneldoc for drm_fops.c
> Repository lacks necessary blobs to fall back on 3-way merge.
> Cannot fall back to three-way merge.
> Patch failed at 0001 drm: kerneldoc for drm_fops.c

Can we please patchwork CI about patch -p1 or maybe even wiggle?
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: ✗ failure:  Fi.CI.BAT
  2016-01-11 12:50   ` Mika Kuoppala
@ 2016-01-12 16:22     ` Daniel Vetter
  2016-01-13  9:16       ` Mika Kuoppala
  2016-01-13  9:20       ` Mika Kuoppala
  0 siblings, 2 replies; 124+ messages in thread
From: Daniel Vetter @ 2016-01-12 16:22 UTC (permalink / raw)
  To: Mika Kuoppala; +Cc: intel-gfx

On Mon, Jan 11, 2016 at 02:50:28PM +0200, Mika Kuoppala wrote:
> Patchwork <patchwork@annarchy.freedesktop.org> writes:
> 
> > == Summary ==
> >
> > Built on ff88655b3a5467bbc3be8c67d3e05ebf182557d3 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest
> >
> > Test gem_storedw_loop:
> >         Subgroup basic-render:
> >                 pass       -> DMESG-WARN (skl-i5k-2) UNSTABLE
> >                 dmesg-warn -> PASS       (bdw-ultra)
> > Test kms_flip:
> >         Subgroup basic-flip-vs-dpms:
> >                 dmesg-warn -> PASS       (ilk-hp8440p)
> >         Subgroup basic-flip-vs-modeset:
> >                 pass       -> DMESG-WARN (skl-i5k-2)
> >                 dmesg-warn -> PASS       (bsw-nuc-2)
> >                 pass       -> DMESG-WARN (ilk-hp8440p)
> >                 dmesg-warn -> PASS       (byt-nuc)
> >         Subgroup basic-flip-vs-wf_vblank:
> >                 pass       -> DMESG-WARN (byt-nuc)
> >         Subgroup basic-plain-flip:
> >                 dmesg-warn -> PASS       (bsw-nuc-2)
> >                 dmesg-warn -> PASS       (byt-nuc)
> > Test kms_pipe_crc_basic:
> >         Subgroup nonblocking-crc-pipe-b:
> >                 pass       -> DMESG-WARN (byt-nuc)
> >         Subgroup nonblocking-crc-pipe-c:
> >                 pass       -> DMESG-WARN (bsw-nuc-2)
> >         Subgroup read-crc-pipe-a:
> >                 dmesg-warn -> PASS       (byt-nuc)
> >         Subgroup read-crc-pipe-b:
> >                 dmesg-warn -> PASS       (byt-nuc)
> >         Subgroup read-crc-pipe-b-frame-sequence:
> >                 pass       -> DMESG-WARN (bdw-ultra)
> >                 dmesg-warn -> PASS       (byt-nuc)
> >         Subgroup read-crc-pipe-c:
> >                 dmesg-warn -> PASS       (bsw-nuc-2)
> >         Subgroup read-crc-pipe-c-frame-sequence:
> >                 pass       -> DMESG-WARN (bsw-nuc-2)

But what with all the pass->dmesg-warn changes above? That's considered
BAT failure too, we can't afford to sprinkle warnings all over ... And
it's a bunch of different machines.

> > Test pm_rpm:
> >         Subgroup basic-pci-d3-state:
> >                 dmesg-warn -> PASS       (byt-nuc)
> >
> > bdw-ultra        total:138  pass:130  dwarn:1   dfail:0   fail:1
> > skip:6
> 
> Tomi suspected this as a fluke fail. There was no igt stdout nor stderr
> for this case. We did a rerun and bdw-ultra passed.
> 
> -Mika
> 
> > bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
> > byt-nuc          total:141  pass:122  dwarn:4   dfail:0   fail:0   skip:15 
> > hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
> > hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
> > ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
> > skl-i5k-2        total:141  pass:130  dwarn:3   dfail:0   fail:0   skip:8  
> > skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
> > snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
> > snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 
> >
> > HANGED ivb-t430s in igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b

So is killing a machine ... pretty sure this is new-ish.
-Daniel


> >
> > Results at /archive/results/CI_IGT_test/Patchwork_1116/
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-12 15:28 [PATCH 1/1] drm/i915: Reorder shadow registers on gen8 for faster lookup Mika Kuoppala
@ 2016-01-12 16:20 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-12 16:20 UTC (permalink / raw)
  To: Mika Kuoppala; +Cc: intel-gfx

== Summary ==

Built on 37f6c2ae666fbba9eff4355115252b8b0fd43050 drm-intel-nightly: 2016y-01m-12d-14h-25m-44s UTC integration manifest

Test gem_storedw_loop:
        Subgroup basic-render:
                pass       -> DMESG-WARN (skl-i5k-2) UNSTABLE
                dmesg-warn -> PASS       (bdw-nuci7)
                pass       -> DMESG-WARN (bdw-ultra)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-a-frame-sequence:
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup read-crc-pipe-c:
                dmesg-warn -> PASS       (bdw-ultra)

bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:131  dwarn:1   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
byt-nuc          total:141  pass:123  dwarn:3   dfail:0   fail:0   skip:15 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-xps12        total:138  pass:133  dwarn:1   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
skl-i5k-2        total:141  pass:107  dwarn:26  dfail:0   fail:0   skip:8  
skl-i7k-2        total:141  pass:107  dwarn:26  dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

HANGED hsw-gt2 in igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a

Results at /archive/results/CI_IGT_test/Patchwork_1152/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-11 21:40 [PATCH 00/22] drm_event cleanup, round 2 Daniel Vetter
@ 2016-01-12  8:30 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-12  8:30 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

== Summary ==

HEAD is now at a907968 drm-intel-nightly: 2016y-01m-11d-17h-22m-54s UTC integration manifest
Applying: drm: kerneldoc for drm_fops.c
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 drm: kerneldoc for drm_fops.c

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-14 16:23 [PATCH 00/10] drm/i915: Fixes from my attempt at running igt on gen2 ville.syrjala
@ 2016-01-12  7:49 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-12  7:49 UTC (permalink / raw)
  To: ville.syrjala; +Cc: intel-gfx

== Summary ==

Built on a90796840c30dac6d9907439bf98d1d08046c49d drm-intel-nightly: 2016y-01m-11d-17h-22m-54s UTC integration manifest

Test gem_storedw_loop:
        Subgroup basic-render:
                pass       -> DMESG-WARN (skl-i5k-2) UNSTABLE
Test kms_pipe_crc_basic:
        Subgroup hang-read-crc-pipe-a:
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (ivb-t430s)
                pass       -> FAIL       (bdw-ultra)
                pass       -> FAIL       (byt-nuc)
                pass       -> FAIL       (snb-x220t)
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (hsw-brixbox)
                pass       -> FAIL       (ilk-hp8440p)
        Subgroup hang-read-crc-pipe-b:
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (ivb-t430s)
                pass       -> FAIL       (byt-nuc)
                pass       -> FAIL       (snb-x220t)
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (ilk-hp8440p)
        Subgroup hang-read-crc-pipe-c:
                pass       -> DMESG-WARN (bsw-nuc-2)
                pass       -> FAIL       (skl-i5k-2)
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (skl-i7k-2)
                pass       -> FAIL       (ivb-t430s)
                pass       -> FAIL       (hsw-brixbox)
                pass       -> FAIL       (bdw-nuci7)
        Subgroup nonblocking-crc-pipe-a:
                pass       -> FAIL       (skl-i5k-2)
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (bdw-ultra)
                pass       -> FAIL       (skl-i7k-2)
                pass       -> FAIL       (byt-nuc)
                pass       -> FAIL       (snb-x220t)
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (hsw-brixbox)
                pass       -> FAIL       (bdw-nuci7)
                pass       -> FAIL       (ilk-hp8440p)
        Subgroup nonblocking-crc-pipe-a-frame-sequence:
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (bdw-ultra)
                pass       -> FAIL       (byt-nuc)
                pass       -> FAIL       (snb-x220t)
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (hsw-brixbox)
                pass       -> FAIL       (bdw-nuci7)
                pass       -> FAIL       (ilk-hp8440p)
        Subgroup nonblocking-crc-pipe-b:
                dmesg-warn -> DMESG-FAIL (snb-x220t)
                dmesg-warn -> DMESG-FAIL (snb-dellxps)
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (ilk-hp8440p)
        Subgroup nonblocking-crc-pipe-b-frame-sequence:
                pass       -> FAIL       (snb-x220t)
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (ilk-hp8440p)
        Subgroup nonblocking-crc-pipe-c:
                pass       -> FAIL       (hsw-gt2)
        Subgroup nonblocking-crc-pipe-c-frame-sequence:
                pass       -> FAIL       (bsw-nuc-2)
                pass       -> FAIL       (skl-i5k-2)
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (skl-i7k-2)
                pass       -> FAIL       (hsw-brixbox)
                pass       -> FAIL       (bdw-nuci7)
        Subgroup read-crc-pipe-a:
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (ivb-t430s)
                pass       -> FAIL       (bdw-ultra)
                pass       -> FAIL       (skl-i7k-2)
                pass       -> FAIL       (byt-nuc)
                pass       -> FAIL       (snb-x220t)
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (hsw-brixbox)
                pass       -> FAIL       (bdw-nuci7)
                pass       -> FAIL       (ilk-hp8440p)
        Subgroup read-crc-pipe-a-frame-sequence:
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (ivb-t430s)
                pass       -> FAIL       (bdw-ultra)
                pass       -> FAIL       (byt-nuc)
                pass       -> FAIL       (snb-x220t)
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (hsw-brixbox)
                pass       -> FAIL       (bdw-nuci7)
                pass       -> FAIL       (ilk-hp8440p)
        Subgroup read-crc-pipe-b:
                dmesg-warn -> DMESG-FAIL (snb-x220t)
                dmesg-warn -> DMESG-FAIL (snb-dellxps)
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (ilk-hp8440p)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> FAIL       (snb-x220t)
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (ilk-hp8440p)
                pass       -> FAIL       (ivb-t430s)
        Subgroup read-crc-pipe-c:
                pass       -> FAIL       (hsw-gt2)
        Subgroup read-crc-pipe-c-frame-sequence:
                dmesg-warn -> FAIL       (bsw-nuc-2)
                pass       -> FAIL       (skl-i5k-2)
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (skl-i7k-2)
                pass       -> FAIL       (ivb-t430s)
                pass       -> FAIL       (hsw-brixbox)
                pass       -> FAIL       (bdw-nuci7)
        Subgroup suspend-read-crc-pipe-a:
                pass       -> FAIL       (skl-i5k-2)
                pass       -> FAIL       (hsw-gt2)
                pass       -> FAIL       (snb-x220t)
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (hsw-brixbox)
                pass       -> FAIL       (ilk-hp8440p)
        Subgroup suspend-read-crc-pipe-b:
                dmesg-warn -> DMESG-FAIL (snb-x220t)
                dmesg-warn -> DMESG-FAIL (snb-dellxps)
                dmesg-warn -> DMESG-FAIL (ilk-hp8440p)

bdw-nuci7        total:138  pass:122  dwarn:0   dfail:0   fail:7   skip:9  
bdw-ultra        total:138  pass:126  dwarn:0   dfail:0   fail:6   skip:6  
bsw-nuc-2        total:141  pass:113  dwarn:2   dfail:0   fail:2   skip:24 
byt-nuc          total:141  pass:117  dwarn:3   dfail:0   fail:6   skip:15 
hsw-brixbox      total:141  pass:125  dwarn:0   dfail:0   fail:9   skip:7  
hsw-gt2          total:141  pass:121  dwarn:0   dfail:0   fail:16  skip:4  
ilk-hp8440p      total:141  pass:90   dwarn:2   dfail:1   fail:11  skip:37 
ivb-t430s        total:135  pass:115  dwarn:3   dfail:4   fail:7   skip:6  
skl-i5k-2        total:141  pass:126  dwarn:2   dfail:0   fail:5   skip:8  
skl-i7k-2        total:141  pass:127  dwarn:1   dfail:0   fail:5   skip:8  
snb-dellxps      total:141  pass:113  dwarn:2   dfail:3   fail:9   skip:14 
snb-x220t        total:141  pass:113  dwarn:2   dfail:3   fail:10  skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1137/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-11 12:27 [PATCH v2 0/9] Kill off intel_crtc->atomic! Maarten Lankhorst
  2016-01-11 12:49 ` ✗ failure: Fi.CI.BAT Patchwork
@ 2016-01-11 14:30 ` Patchwork
  1 sibling, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-11 14:30 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-gfx

== Summary ==

HEAD is now at ff88655 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest
Applying: drm/i915: Kill off intel_crtc->atomic.wait_vblank, v3.
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 drm/i915: Kill off intel_crtc->atomic.wait_vblank, v3.

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-21 13:10 [PATCH 00/15] drm/i915/bios: mipi sequence block v3, etc Jani Nikula
  2016-01-05 16:01 ` ✗ failure: Fi.CI.BAT Patchwork
  2016-01-11 13:30 ` Patchwork
@ 2016-01-11 14:01 ` Patchwork
  2 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-11 14:01 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Summary ==

HEAD is now at ff88655 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest
Applying: drm/i915/bios: add proper documentation for the Video BIOS Table (VBT)
Using index info to reconstruct a base tree...
M	Documentation/DocBook/gpu.tmpl
M	drivers/gpu/drm/i915/intel_bios.c
M	drivers/gpu/drm/i915/intel_bios.h
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_bios.h
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_bios.h
Auto-merging drivers/gpu/drm/i915/intel_bios.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_bios.c
Patch failed at 0001 drm/i915/bios: add proper documentation for the Video BIOS Table (VBT)

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-21 13:10 [PATCH 00/15] drm/i915/bios: mipi sequence block v3, etc Jani Nikula
  2016-01-05 16:01 ` ✗ failure: Fi.CI.BAT Patchwork
@ 2016-01-11 13:30 ` Patchwork
  2016-01-11 14:01 ` Patchwork
  2 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-11 13:30 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Summary ==

HEAD is now at ff88655 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest
Applying: drm/i915/bios: add proper documentation for the Video BIOS Table (VBT)
Using index info to reconstruct a base tree...
M	Documentation/DocBook/gpu.tmpl
M	drivers/gpu/drm/i915/intel_bios.c
M	drivers/gpu/drm/i915/intel_bios.h
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_bios.h
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_bios.h
Auto-merging drivers/gpu/drm/i915/intel_bios.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_bios.c
Patch failed at 0001 drm/i915/bios: add proper documentation for the Video BIOS Table (VBT)

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

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-11  9:59 ` ✗ failure: Fi.CI.BAT Patchwork
@ 2016-01-11 12:50   ` Mika Kuoppala
  2016-01-12 16:22     ` Daniel Vetter
  0 siblings, 1 reply; 124+ messages in thread
From: Mika Kuoppala @ 2016-01-11 12:50 UTC (permalink / raw)
  To: Patchwork; +Cc: intel-gfx

Patchwork <patchwork@annarchy.freedesktop.org> writes:

> == Summary ==
>
> Built on ff88655b3a5467bbc3be8c67d3e05ebf182557d3 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest
>
> Test gem_storedw_loop:
>         Subgroup basic-render:
>                 pass       -> DMESG-WARN (skl-i5k-2) UNSTABLE
>                 dmesg-warn -> PASS       (bdw-ultra)
> Test kms_flip:
>         Subgroup basic-flip-vs-dpms:
>                 dmesg-warn -> PASS       (ilk-hp8440p)
>         Subgroup basic-flip-vs-modeset:
>                 pass       -> DMESG-WARN (skl-i5k-2)
>                 dmesg-warn -> PASS       (bsw-nuc-2)
>                 pass       -> DMESG-WARN (ilk-hp8440p)
>                 dmesg-warn -> PASS       (byt-nuc)
>         Subgroup basic-flip-vs-wf_vblank:
>                 pass       -> DMESG-WARN (byt-nuc)
>         Subgroup basic-plain-flip:
>                 dmesg-warn -> PASS       (bsw-nuc-2)
>                 dmesg-warn -> PASS       (byt-nuc)
> Test kms_pipe_crc_basic:
>         Subgroup nonblocking-crc-pipe-b:
>                 pass       -> DMESG-WARN (byt-nuc)
>         Subgroup nonblocking-crc-pipe-c:
>                 pass       -> DMESG-WARN (bsw-nuc-2)
>         Subgroup read-crc-pipe-a:
>                 dmesg-warn -> PASS       (byt-nuc)
>         Subgroup read-crc-pipe-b:
>                 dmesg-warn -> PASS       (byt-nuc)
>         Subgroup read-crc-pipe-b-frame-sequence:
>                 pass       -> DMESG-WARN (bdw-ultra)
>                 dmesg-warn -> PASS       (byt-nuc)
>         Subgroup read-crc-pipe-c:
>                 dmesg-warn -> PASS       (bsw-nuc-2)
>         Subgroup read-crc-pipe-c-frame-sequence:
>                 pass       -> DMESG-WARN (bsw-nuc-2)
> Test pm_rpm:
>         Subgroup basic-pci-d3-state:
>                 dmesg-warn -> PASS       (byt-nuc)
>
> bdw-ultra        total:138  pass:130  dwarn:1   dfail:0   fail:1
> skip:6

Tomi suspected this as a fluke fail. There was no igt stdout nor stderr
for this case. We did a rerun and bdw-ultra passed.

-Mika

> bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
> byt-nuc          total:141  pass:122  dwarn:4   dfail:0   fail:0   skip:15 
> hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
> hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
> ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
> skl-i5k-2        total:141  pass:130  dwarn:3   dfail:0   fail:0   skip:8  
> skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
> snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
> snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 
>
> HANGED ivb-t430s in igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b
>
> Results at /archive/results/CI_IGT_test/Patchwork_1116/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ failure: Fi.CI.BAT
  2016-01-11 12:27 [PATCH v2 0/9] Kill off intel_crtc->atomic! Maarten Lankhorst
@ 2016-01-11 12:49 ` Patchwork
  2016-01-11 14:30 ` Patchwork
  1 sibling, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-11 12:49 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-gfx

== Summary ==

Built on ff88655b3a5467bbc3be8c67d3e05ebf182557d3 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest

Test core_auth:
        Subgroup basic-auth:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test core_prop_blob:
        Subgroup basic:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test drv_getparams_basic:
        Subgroup basic-eu-total:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-subslice-total:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_basic:
        Subgroup bad-close:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup create-close:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_cpu_reloc:
        Subgroup basic:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_ctx_create:
        Subgroup basic:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_ctx_param_basic:
        Subgroup basic:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-default:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup invalid-ctx-get:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup invalid-ctx-set:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup invalid-param-set:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup non-root-set:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup non-root-set-no-zeromap:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup root-set-no-zeromap-disabled:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup root-set-no-zeromap-enabled:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_flink_basic:
        Subgroup bad-open:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_linear_blits:
        Subgroup basic:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_mmap:
        Subgroup basic:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_mmap_gtt:
        Subgroup basic-copy:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-read:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-read-write-distinct:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-small-bo:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-small-bo-tiledx:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-small-bo-tiledy:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-small-copy:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-small-copy-xy:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-write:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-write-gtt:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-write-no-prefault:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-write-read-distinct:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_pwrite:
        Subgroup basic:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_render_linear_blits:
        Subgroup basic:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_render_tiled_blits:
        Subgroup basic:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test gem_storedw_loop:
        Subgroup basic-blt:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-bsd:
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-render:
                dmesg-warn -> PASS       (bdw-ultra)
        Subgroup basic-vebox:
                pass       -> SKIP       (bdw-ultra)
Test kms_addfb_basic:
        Subgroup addfb25-modifier-no-flag:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup addfb25-x-tiled:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup addfb25-x-tiled-mismatch:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup addfb25-y-tiled:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup addfb25-yf-tiled:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup bad-pitch-0:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup bad-pitch-1024:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup bad-pitch-128:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup bad-pitch-256:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup bad-pitch-32:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup bad-pitch-63:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup bad-pitch-65536:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup bad-pitch-999:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-y-tiled:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup bo-too-small-due-to-tiling:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup clobberred-modifier:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup framebuffer-vs-set-tiling:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup no-handle:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup size-max:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup small-bo:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup tile-pitch-mismatch:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup too-high:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup too-wide:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup unused-handle:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup unused-modifier:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup unused-offsets:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup unused-pitches:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                pass       -> DMESG-FAIL (bsw-nuc-2)
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (bdw-ultra)
                dmesg-warn -> PASS       (ilk-hp8440p)
                pass       -> DMESG-FAIL (byt-nuc)
        Subgroup basic-flip-vs-modeset:
                dmesg-warn -> DMESG-FAIL (bsw-nuc-2)
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
                pass       -> DMESG-WARN (ilk-hp8440p)
                dmesg-warn -> DMESG-FAIL (byt-nuc)
        Subgroup basic-flip-vs-wf_vblank:
                pass       -> DMESG-FAIL (bsw-nuc-2)
                dmesg-warn -> PASS       (ivb-t430s)
                pass       -> FAIL       (bdw-ultra)
                pass       -> DMESG-FAIL (byt-nuc)
                dmesg-warn -> PASS       (snb-x220t)
                dmesg-warn -> FAIL       (snb-dellxps)
                dmesg-warn -> PASS       (ilk-hp8440p)
        Subgroup basic-plain-flip:
                dmesg-warn -> DMESG-FAIL (byt-nuc)
                dmesg-warn -> DMESG-FAIL (bsw-nuc-2)
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
                dmesg-warn -> PASS       (ivb-t430s)
Test kms_force_connector_basic:
        Subgroup force-edid:
                pass       -> SKIP       (snb-dellxps)
        Subgroup prune-stale-modes:
                pass       -> SKIP       (snb-dellxps)
Test kms_pipe_crc_basic:
        Subgroup bad-nb-words-1:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup bad-nb-words-3:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup bad-pipe:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup hang-read-crc-pipe-a:
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (bdw-ultra)
                pass       -> DMESG-FAIL (byt-nuc)
        Subgroup hang-read-crc-pipe-b:
                pass       -> FAIL       (snb-dellxps)
                pass       -> FAIL       (bdw-ultra)
                pass       -> DMESG-FAIL (byt-nuc)
        Subgroup hang-read-crc-pipe-c:
                pass       -> FAIL       (bsw-nuc-2)
                pass       -> FAIL       (bdw-ultra)
        Subgroup nonblocking-crc-pipe-a:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
                pass       -> FAIL       (byt-nuc)
        Subgroup nonblocking-crc-pipe-a-frame-sequence:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
                pass       -> FAIL       (byt-nuc)
        Subgroup nonblocking-crc-pipe-b:
                dmesg-warn -> PASS       (snb-x220t)
                dmesg-warn -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
                pass       -> DMESG-FAIL (byt-nuc)
        Subgroup nonblocking-crc-pipe-b-frame-sequence:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
                pass       -> DMESG-FAIL (byt-nuc)
        Subgroup nonblocking-crc-pipe-c:
                pass       -> FAIL       (bsw-nuc-2)
                pass       -> SKIP       (bdw-ultra)
        Subgroup nonblocking-crc-pipe-c-frame-sequence:
                pass       -> FAIL       (bsw-nuc-2)
                pass       -> FAIL       (bdw-ultra)
        Subgroup read-crc-pipe-a:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
                dmesg-warn -> FAIL       (byt-nuc)
        Subgroup read-crc-pipe-a-frame-sequence:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
                dmesg-warn -> FAIL       (byt-nuc)
        Subgroup read-crc-pipe-b:
                dmesg-warn -> DMESG-FAIL (byt-nuc)
                dmesg-warn -> PASS       (snb-x220t)
                dmesg-warn -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
                dmesg-fail -> PASS       (ivb-t430s)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
                dmesg-warn -> DMESG-FAIL (byt-nuc)
        Subgroup read-crc-pipe-c:
                dmesg-warn -> FAIL       (bsw-nuc-2)
                pass       -> SKIP       (bdw-ultra)
                dmesg-fail -> PASS       (ivb-t430s)
        Subgroup read-crc-pipe-c-frame-sequence:
                pass       -> FAIL       (bsw-nuc-2)
                pass       -> FAIL       (bdw-ultra)
        Subgroup suspend-read-crc-pipe-a:
                pass       -> SKIP       (snb-dellxps)
                pass       -> DMESG-FAIL (byt-nuc)
        Subgroup suspend-read-crc-pipe-b:
                pass       -> DMESG-FAIL (byt-nuc)
                dmesg-warn -> PASS       (snb-x220t)
                dmesg-warn -> SKIP       (snb-dellxps)
                dmesg-warn -> PASS       (ilk-hp8440p)
                dmesg-fail -> PASS       (ivb-t430s)
        Subgroup suspend-read-crc-pipe-c:
                pass       -> DMESG-FAIL (bsw-nuc-2)
                dmesg-fail -> PASS       (ivb-t430s)
Test kms_psr_sink_crc:
        Subgroup psr_basic:
                pass       -> SKIP       (bdw-ultra)
Test kms_setmode:
        Subgroup basic-clone-single-crtc:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test pm_rpm:
        Subgroup basic-pci-d3-state:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-rte:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test pm_rps:
        Subgroup basic-api:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
Test prime_self_import:
        Subgroup basic-llseek-bad:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-with_fd_dup:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-with_one_bo_two_files:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)
        Subgroup basic-with_two_bos:
                pass       -> SKIP       (snb-dellxps)
                pass       -> SKIP       (bdw-ultra)

bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:31   dwarn:0   dfail:1   fail:7   skip:99 
bsw-nuc-2        total:141  pass:106  dwarn:1   dfail:5   fail:5   skip:24 
byt-nuc          total:141  pass:107  dwarn:3   dfail:12  fail:4   skip:15 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:103  dwarn:1   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:129  dwarn:0   dfail:0   fail:0   skip:6  
snb-dellxps      total:141  pass:31   dwarn:0   dfail:1   fail:4   skip:105
snb-x220t        total:141  pass:127  dwarn:0   dfail:0   fail:1   skip:13 

HANGED hsw-xps12 in igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a
HANGED skl-i5k-2 in igt@kms_pipe_crc_basic@hang-read-crc-pipe-a
HANGED skl-i7k-2 in igt@kms_pipe_crc_basic@hang-read-crc-pipe-a

Results at /archive/results/CI_IGT_test/Patchwork_1127/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-08 20:36 [PATCH 00/21] drm_event cleanup Daniel Vetter
@ 2016-01-11 11:20 ` Patchwork
  2016-01-12 16:24   ` Daniel Vetter
  0 siblings, 1 reply; 124+ messages in thread
From: Patchwork @ 2016-01-11 11:20 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

== Summary ==

HEAD is now at ff88655 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest
Applying: drm: kerneldoc for drm_fops.c
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 drm: kerneldoc for drm_fops.c

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-08 21:40 [PATCH] drm/i915: Reject invalid-pad for context-destroy ioctl Chris Wilson
@ 2016-01-11 11:07 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-11 11:07 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Summary ==

Built on ff88655b3a5467bbc3be8c67d3e05ebf182557d3 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest

Test gem_storedw_loop:
        Subgroup basic-render:
                pass       -> DMESG-WARN (bdw-nuci7)
                dmesg-warn -> PASS       (bdw-ultra)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                dmesg-warn -> PASS       (ilk-hp8440p)
Test kms_pipe_crc_basic:
        Subgroup nonblocking-crc-pipe-b-frame-sequence:
                pass       -> DMESG-WARN (bdw-ultra)
        Subgroup read-crc-pipe-a-frame-sequence:
                pass       -> FAIL       (snb-x220t)
        Subgroup read-crc-pipe-b:
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup read-crc-pipe-c:
                dmesg-warn -> PASS       (bsw-nuc-2)

bdw-nuci7        total:138  pass:128  dwarn:1   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:131  dwarn:1   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
byt-nuc          total:141  pass:119  dwarn:7   dfail:0   fail:0   skip:15 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37 
ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
skl-i5k-2        total:141  pass:132  dwarn:1   dfail:0   fail:0   skip:8  
skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:121  dwarn:5   dfail:0   fail:2   skip:13 

Results at /archive/results/CI_IGT_test/Patchwork_1120/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-08 16:58 [PATCH 1/2] drm/i915: Store edram capabilities instead of fixed size Mika Kuoppala
@ 2016-01-11 10:27 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-11 10:27 UTC (permalink / raw)
  To: Mika Kuoppala; +Cc: intel-gfx

== Summary ==

Built on ff88655b3a5467bbc3be8c67d3e05ebf182557d3 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest

Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (bdw-ultra)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                dmesg-warn -> PASS       (ilk-hp8440p)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-b:
                pass       -> DMESG-WARN (bdw-ultra)
                dmesg-warn -> PASS       (byt-nuc)

bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:138  pass:131  dwarn:1   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:141  pass:114  dwarn:3   dfail:0   fail:0   skip:24 
byt-nuc          total:141  pass:119  dwarn:7   dfail:0   fail:0   skip:15 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37 
skl-i5k-2        total:141  pass:132  dwarn:1   dfail:0   fail:0   skip:8  
skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

HANGED ivb-t430s in igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b

Results at /archive/results/CI_IGT_test/Patchwork_1118/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-08 13:51 [PATCH 1/2] drm/i915: Enable mmio_debug for vlv/chv Mika Kuoppala
@ 2016-01-11  9:59 ` Patchwork
  2016-01-11 12:50   ` Mika Kuoppala
  0 siblings, 1 reply; 124+ messages in thread
From: Patchwork @ 2016-01-11  9:59 UTC (permalink / raw)
  To: Mika Kuoppala; +Cc: intel-gfx

== Summary ==

Built on ff88655b3a5467bbc3be8c67d3e05ebf182557d3 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest

Test gem_storedw_loop:
        Subgroup basic-render:
                pass       -> DMESG-WARN (skl-i5k-2) UNSTABLE
                dmesg-warn -> PASS       (bdw-ultra)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                dmesg-warn -> PASS       (ilk-hp8440p)
        Subgroup basic-flip-vs-modeset:
                pass       -> DMESG-WARN (skl-i5k-2)
                dmesg-warn -> PASS       (bsw-nuc-2)
                pass       -> DMESG-WARN (ilk-hp8440p)
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup basic-flip-vs-wf_vblank:
                pass       -> DMESG-WARN (byt-nuc)
        Subgroup basic-plain-flip:
                dmesg-warn -> PASS       (bsw-nuc-2)
                dmesg-warn -> PASS       (byt-nuc)
Test kms_pipe_crc_basic:
        Subgroup nonblocking-crc-pipe-b:
                pass       -> DMESG-WARN (byt-nuc)
        Subgroup nonblocking-crc-pipe-c:
                pass       -> DMESG-WARN (bsw-nuc-2)
        Subgroup read-crc-pipe-a:
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup read-crc-pipe-b:
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-WARN (bdw-ultra)
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup read-crc-pipe-c:
                dmesg-warn -> PASS       (bsw-nuc-2)
        Subgroup read-crc-pipe-c-frame-sequence:
                pass       -> DMESG-WARN (bsw-nuc-2)
Test pm_rpm:
        Subgroup basic-pci-d3-state:
                dmesg-warn -> PASS       (byt-nuc)

bdw-ultra        total:138  pass:130  dwarn:1   dfail:0   fail:1   skip:6  
bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
byt-nuc          total:141  pass:122  dwarn:4   dfail:0   fail:0   skip:15 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
skl-i5k-2        total:141  pass:130  dwarn:3   dfail:0   fail:0   skip:8  
skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

HANGED ivb-t430s in igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b

Results at /archive/results/CI_IGT_test/Patchwork_1116/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-07  9:10 [PATCH] drm/i915: Init power domains early in driver load Daniel Vetter
@ 2016-01-11  9:12 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-11  9:12 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

== Summary ==

Built on ff88655b3a5467bbc3be8c67d3e05ebf182557d3 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest

Test gem_storedw_loop:
        Subgroup basic-render:
                pass       -> DMESG-WARN (skl-i5k-2) UNSTABLE
                dmesg-warn -> PASS       (bdw-ultra)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                dmesg-warn -> PASS       (ilk-hp8440p)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-b:
                pass       -> DMESG-WARN (ilk-hp8440p)
                dmesg-warn -> PASS       (byt-nuc)

bdw-ultra        total:138  pass:132  dwarn:0   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:141  pass:114  dwarn:3   dfail:0   fail:0   skip:24 
byt-nuc          total:141  pass:119  dwarn:7   dfail:0   fail:0   skip:15 
hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
hsw-xps12        total:138  pass:133  dwarn:1   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:141  pass:100  dwarn:4   dfail:0   fail:0   skip:37 
skl-i5k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
skl-i7k-2        total:141  pass:131  dwarn:2   dfail:0   fail:0   skip:8  
snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 

HANGED ivb-t430s in igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b

Results at /archive/results/CI_IGT_test/Patchwork_1112/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-07 10:54 [PATCH 0/7] Explicitly pass crtc_state and plane_state to plane update functions Maarten Lankhorst
@ 2016-01-11  8:53 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-11  8:53 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-gfx

== Summary ==

HEAD is now at ff88655 drm-intel-nightly: 2016y-01m-11d-07h-30m-16s UTC integration manifest
Applying: drm/i915: Use passed plane state for sprite planes, v4.
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/intel_drv.h
M	drivers/gpu/drm/i915/intel_sprite.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_sprite.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_sprite.c
Patch failed at 0001 drm/i915: Use passed plane state for sprite planes, v4.

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

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-07 14:36       ` Daniel Vetter
  2016-01-07 14:51         ` Jani Nikula
@ 2016-01-07 15:37         ` Dave Gordon
  1 sibling, 0 replies; 124+ messages in thread
From: Dave Gordon @ 2016-01-07 15:37 UTC (permalink / raw)
  To: Daniel Vetter, Jani Nikula; +Cc: intel-gfx

On 07/01/16 14:36, Daniel Vetter wrote:
> On Thu, Jan 07, 2016 at 03:06:13PM +0200, Jani Nikula wrote:
>> On Thu, 07 Jan 2016, Dave Gordon <david.s.gordon@intel.com> wrote:
>>> On 06/01/16 10:20, Patchwork wrote:
>>>> == Summary ==
>>>>
>>>> Built on 24b053acb16b4b3b021575e4ee30ffedd3ab2920 drm-intel-nightly: 2016y-01m-06d-08h-16m-11s UTC integration manifest
>>>>
>>>> Test drv_getparams_basic:
>>>>           Subgroup basic-eu-total:
>>>>                   pass       -> DMESG-FAIL (skl-i5k-2)
>>>>                   pass       -> DMESG-FAIL (skl-i7k-2)
>>
>> [snip]
>>
>>>>
>>>> bdw-nuci7        total:132  pass:122  dwarn:1   dfail:0   fail:0   skip:9
>>>> bdw-ultra        total:132  pass:126  dwarn:0   dfail:0   fail:0   skip:6
>>>> bsw-nuc-2        total:135  pass:115  dwarn:0   dfail:0   fail:0   skip:20
>>>> byt-nuc          total:135  pass:121  dwarn:1   dfail:0   fail:0   skip:13
>>>> hsw-brixbox      total:135  pass:128  dwarn:0   dfail:0   fail:0   skip:7
>>>> hsw-gt2          total:135  pass:131  dwarn:0   dfail:0   fail:0   skip:4
>>>> ilk-hp8440p      total:135  pass:100  dwarn:0   dfail:0   fail:0   skip:35
>>>> ivb-t430s        total:135  pass:129  dwarn:0   dfail:0   fail:0   skip:6
>>>> skl-i5k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1
>>>> skl-i7k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1
>>>> snb-dellxps      total:135  pass:123  dwarn:0   dfail:0   fail:0   skip:12
>>>> snb-x220t        total:135  pass:123  dwarn:0   dfail:0   fail:1   skip:11
>>>>
>>>> Results at /archive/results/CI_IGT_test/Patchwork_1094/
>>>>
>>>> _______________________________________________
>>>> Intel-gfx mailing list
>>>> Intel-gfx@lists.freedesktop.org
>>>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>>>
>>> Looks like the CI SKL doesn't have the GuC firmware installed?
>>
>> It's tons of:
>>
>> [   38.169461] [drm:intel_lr_context_deferred_alloc [i915]] *ERROR* ring create req: -5
>>
>> If that gets fixed by installing the GuC firmware, the answer is *not*
>> to install the GuC firmware on the CI machines. The answer is to make
>> the driver handle missing firmware gracefully.
>
> I kinda don't want to support 2 different ways to run things on any given
> platform, because we can't even support one way properly.
>
> But since it took forever to get guc enabled people will indeed scream if
> guc isn't there, so either we enable this only for bxt and later or we
> indeed need to support both cases on skl :(

Yeah, we used to have that ability, until it was vetoed :(
See <20150706142822.GJ2156@phenom.ffwll.local> or
http://www.mail-archive.com/intel-gfx%40lists.freedesktop.org/msg63553.html

> Either way we do need to install guc firmware first on CI boxes, since
> otherwise coverage isn't there.
> -Daniel


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

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-07 14:36       ` Daniel Vetter
@ 2016-01-07 14:51         ` Jani Nikula
  2016-01-07 15:37         ` Dave Gordon
  1 sibling, 0 replies; 124+ messages in thread
From: Jani Nikula @ 2016-01-07 14:51 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

On Thu, 07 Jan 2016, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Thu, Jan 07, 2016 at 03:06:13PM +0200, Jani Nikula wrote:
>> On Thu, 07 Jan 2016, Dave Gordon <david.s.gordon@intel.com> wrote:
>> > On 06/01/16 10:20, Patchwork wrote:
>> >> == Summary ==
>> >>
>> >> Built on 24b053acb16b4b3b021575e4ee30ffedd3ab2920 drm-intel-nightly: 2016y-01m-06d-08h-16m-11s UTC integration manifest
>> >>
>> >> Test drv_getparams_basic:
>> >>          Subgroup basic-eu-total:
>> >>                  pass       -> DMESG-FAIL (skl-i5k-2)
>> >>                  pass       -> DMESG-FAIL (skl-i7k-2)
>> 
>> [snip]
>> 
>> >>
>> >> bdw-nuci7        total:132  pass:122  dwarn:1   dfail:0   fail:0   skip:9
>> >> bdw-ultra        total:132  pass:126  dwarn:0   dfail:0   fail:0   skip:6
>> >> bsw-nuc-2        total:135  pass:115  dwarn:0   dfail:0   fail:0   skip:20
>> >> byt-nuc          total:135  pass:121  dwarn:1   dfail:0   fail:0   skip:13
>> >> hsw-brixbox      total:135  pass:128  dwarn:0   dfail:0   fail:0   skip:7
>> >> hsw-gt2          total:135  pass:131  dwarn:0   dfail:0   fail:0   skip:4
>> >> ilk-hp8440p      total:135  pass:100  dwarn:0   dfail:0   fail:0   skip:35
>> >> ivb-t430s        total:135  pass:129  dwarn:0   dfail:0   fail:0   skip:6
>> >> skl-i5k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1
>> >> skl-i7k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1
>> >> snb-dellxps      total:135  pass:123  dwarn:0   dfail:0   fail:0   skip:12
>> >> snb-x220t        total:135  pass:123  dwarn:0   dfail:0   fail:1   skip:11
>> >>
>> >> Results at /archive/results/CI_IGT_test/Patchwork_1094/
>> >>
>> >> _______________________________________________
>> >> Intel-gfx mailing list
>> >> Intel-gfx@lists.freedesktop.org
>> >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>> >
>> > Looks like the CI SKL doesn't have the GuC firmware installed?
>> 
>> It's tons of:
>> 
>> [   38.169461] [drm:intel_lr_context_deferred_alloc [i915]] *ERROR* ring create req: -5
>> 
>> If that gets fixed by installing the GuC firmware, the answer is *not*
>> to install the GuC firmware on the CI machines. The answer is to make
>> the driver handle missing firmware gracefully.
>
> I kinda don't want to support 2 different ways to run things on any given
> platform, because we can't even support one way properly.
>
> But since it took forever to get guc enabled people will indeed scream if
> guc isn't there, so either we enable this only for bxt and later or we
> indeed need to support both cases on skl :(

It's probably considered a regression to add a hard requirement on guc
firmware now that skl has been running fine without. Yet we probably
want all the coverage we can get for the guc case, so I don't think we
should rely on bxt alone with that.

> Either way we do need to install guc firmware first on CI boxes, since
> otherwise coverage isn't there.

How about having guc firmware on half the CI boxes, at least for
starters. It's going to blow up anyway...

BR,
Jani.


-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: ✗ failure:  Fi.CI.BAT
  2016-01-07 13:06     ` Jani Nikula
@ 2016-01-07 14:36       ` Daniel Vetter
  2016-01-07 14:51         ` Jani Nikula
  2016-01-07 15:37         ` Dave Gordon
  0 siblings, 2 replies; 124+ messages in thread
From: Daniel Vetter @ 2016-01-07 14:36 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Jan 07, 2016 at 03:06:13PM +0200, Jani Nikula wrote:
> On Thu, 07 Jan 2016, Dave Gordon <david.s.gordon@intel.com> wrote:
> > On 06/01/16 10:20, Patchwork wrote:
> >> == Summary ==
> >>
> >> Built on 24b053acb16b4b3b021575e4ee30ffedd3ab2920 drm-intel-nightly: 2016y-01m-06d-08h-16m-11s UTC integration manifest
> >>
> >> Test drv_getparams_basic:
> >>          Subgroup basic-eu-total:
> >>                  pass       -> DMESG-FAIL (skl-i5k-2)
> >>                  pass       -> DMESG-FAIL (skl-i7k-2)
> 
> [snip]
> 
> >>
> >> bdw-nuci7        total:132  pass:122  dwarn:1   dfail:0   fail:0   skip:9
> >> bdw-ultra        total:132  pass:126  dwarn:0   dfail:0   fail:0   skip:6
> >> bsw-nuc-2        total:135  pass:115  dwarn:0   dfail:0   fail:0   skip:20
> >> byt-nuc          total:135  pass:121  dwarn:1   dfail:0   fail:0   skip:13
> >> hsw-brixbox      total:135  pass:128  dwarn:0   dfail:0   fail:0   skip:7
> >> hsw-gt2          total:135  pass:131  dwarn:0   dfail:0   fail:0   skip:4
> >> ilk-hp8440p      total:135  pass:100  dwarn:0   dfail:0   fail:0   skip:35
> >> ivb-t430s        total:135  pass:129  dwarn:0   dfail:0   fail:0   skip:6
> >> skl-i5k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1
> >> skl-i7k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1
> >> snb-dellxps      total:135  pass:123  dwarn:0   dfail:0   fail:0   skip:12
> >> snb-x220t        total:135  pass:123  dwarn:0   dfail:0   fail:1   skip:11
> >>
> >> Results at /archive/results/CI_IGT_test/Patchwork_1094/
> >>
> >> _______________________________________________
> >> Intel-gfx mailing list
> >> Intel-gfx@lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> >
> > Looks like the CI SKL doesn't have the GuC firmware installed?
> 
> It's tons of:
> 
> [   38.169461] [drm:intel_lr_context_deferred_alloc [i915]] *ERROR* ring create req: -5
> 
> If that gets fixed by installing the GuC firmware, the answer is *not*
> to install the GuC firmware on the CI machines. The answer is to make
> the driver handle missing firmware gracefully.

I kinda don't want to support 2 different ways to run things on any given
platform, because we can't even support one way properly.

But since it took forever to get guc enabled people will indeed scream if
guc isn't there, so either we enable this only for bxt and later or we
indeed need to support both cases on skl :(

Either way we do need to install guc firmware first on CI boxes, since
otherwise coverage isn't there.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-07 10:27   ` Dave Gordon
@ 2016-01-07 13:06     ` Jani Nikula
  2016-01-07 14:36       ` Daniel Vetter
  0 siblings, 1 reply; 124+ messages in thread
From: Jani Nikula @ 2016-01-07 13:06 UTC (permalink / raw)
  To: Dave Gordon, Patchwork, yu.dai; +Cc: intel-gfx

On Thu, 07 Jan 2016, Dave Gordon <david.s.gordon@intel.com> wrote:
> On 06/01/16 10:20, Patchwork wrote:
>> == Summary ==
>>
>> Built on 24b053acb16b4b3b021575e4ee30ffedd3ab2920 drm-intel-nightly: 2016y-01m-06d-08h-16m-11s UTC integration manifest
>>
>> Test drv_getparams_basic:
>>          Subgroup basic-eu-total:
>>                  pass       -> DMESG-FAIL (skl-i5k-2)
>>                  pass       -> DMESG-FAIL (skl-i7k-2)

[snip]

>>
>> bdw-nuci7        total:132  pass:122  dwarn:1   dfail:0   fail:0   skip:9
>> bdw-ultra        total:132  pass:126  dwarn:0   dfail:0   fail:0   skip:6
>> bsw-nuc-2        total:135  pass:115  dwarn:0   dfail:0   fail:0   skip:20
>> byt-nuc          total:135  pass:121  dwarn:1   dfail:0   fail:0   skip:13
>> hsw-brixbox      total:135  pass:128  dwarn:0   dfail:0   fail:0   skip:7
>> hsw-gt2          total:135  pass:131  dwarn:0   dfail:0   fail:0   skip:4
>> ilk-hp8440p      total:135  pass:100  dwarn:0   dfail:0   fail:0   skip:35
>> ivb-t430s        total:135  pass:129  dwarn:0   dfail:0   fail:0   skip:6
>> skl-i5k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1
>> skl-i7k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1
>> snb-dellxps      total:135  pass:123  dwarn:0   dfail:0   fail:0   skip:12
>> snb-x220t        total:135  pass:123  dwarn:0   dfail:0   fail:1   skip:11
>>
>> Results at /archive/results/CI_IGT_test/Patchwork_1094/
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> Looks like the CI SKL doesn't have the GuC firmware installed?

It's tons of:

[   38.169461] [drm:intel_lr_context_deferred_alloc [i915]] *ERROR* ring create req: -5

If that gets fixed by installing the GuC firmware, the answer is *not*
to install the GuC firmware on the CI machines. The answer is to make
the driver handle missing firmware gracefully.

BR,
Jani.


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

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: ✗ failure: Fi.CI.BAT
  2016-01-06 10:20 ` ✗ failure: Fi.CI.BAT Patchwork
@ 2016-01-07 10:27   ` Dave Gordon
  2016-01-07 13:06     ` Jani Nikula
  0 siblings, 1 reply; 124+ messages in thread
From: Dave Gordon @ 2016-01-07 10:27 UTC (permalink / raw)
  To: Patchwork, yu.dai; +Cc: intel-gfx

On 06/01/16 10:20, Patchwork wrote:
> == Summary ==
>
> Built on 24b053acb16b4b3b021575e4ee30ffedd3ab2920 drm-intel-nightly: 2016y-01m-06d-08h-16m-11s UTC integration manifest
>
> Test drv_getparams_basic:
>          Subgroup basic-eu-total:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-subslice-total:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test drv_hangman:
>          Subgroup error-state-basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_basic:
>          Subgroup bad-close:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup create-close:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup create-fd-close:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_cpu_reloc:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_ctx_create:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_ctx_exec:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_ctx_param_basic:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-default:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup invalid-ctx-get:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup invalid-ctx-set:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup invalid-param-get:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup invalid-param-set:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup invalid-size-get:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup invalid-size-set:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup non-root-set:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup non-root-set-no-zeromap:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup root-set:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup root-set-no-zeromap-disabled:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup root-set-no-zeromap-enabled:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_exec_parse:
>          Subgroup basic-allowed:
>                  skip       -> DMESG-FAIL (skl-i5k-2)
>                  skip       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-rejected:
>                  skip       -> DMESG-FAIL (skl-i5k-2)
>                  skip       -> DMESG-FAIL (skl-i7k-2)
> Test gem_flink_basic:
>          Subgroup bad-flink:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-open:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup double-flink:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup flink-lifetime:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_linear_blits:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_mmap:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-small-bo:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_mmap_gtt:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-copy:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-read:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-read-no-prefault:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-read-write:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-read-write-distinct:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-short:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-small-bo:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-small-bo-tiledx:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-small-bo-tiledy:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-small-copy:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-small-copy-xy:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-write:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-write-cpu-read-gtt:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-write-gtt:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-write-gtt-no-prefault:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-write-no-prefault:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-write-read:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-write-read-distinct:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_pread:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_pwrite:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_render_linear_blits:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_render_tiled_blits:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_storedw_loop:
>          Subgroup basic-blt:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-bsd:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-render:
>                  dmesg-warn -> DMESG-FAIL (skl-i5k-2) UNSTABLE
>                  pass       -> DMESG-WARN (bdw-nuci7) UNSTABLE
>                  pass       -> DMESG-FAIL (skl-i7k-2) UNSTABLE
>                  dmesg-warn -> PASS       (bdw-ultra) UNSTABLE
>          Subgroup basic-vebox:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_tiled_blits:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_tiled_fence_blits:
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test kms_addfb_basic:
>          Subgroup addfb25-bad-modifier:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup addfb25-framebuffer-vs-set-tiling:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup addfb25-modifier-no-flag:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup addfb25-x-tiled:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup addfb25-x-tiled-mismatch:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup addfb25-y-tiled:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup addfb25-y-tiled-small:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup addfb25-yf-tiled:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-pitch-0:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-pitch-1024:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-pitch-128:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-pitch-256:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-pitch-32:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-pitch-63:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-pitch-65536:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-pitch-999:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-x-tiled:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-y-tiled:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bo-too-small:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bo-too-small-due-to-tiling:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup clobberred-modifier:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup framebuffer-vs-set-tiling:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup no-handle:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup size-max:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup small-bo:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup tile-pitch-mismatch:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup too-high:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup too-wide:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup unused-handle:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup unused-modifier:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup unused-offsets:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup unused-pitches:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test kms_flip:
>          Subgroup basic-flip-vs-dpms:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-flip-vs-modeset:
>                  pass       -> DMESG-FAIL (skl-i5k-2) UNSTABLE
>                  pass       -> DMESG-FAIL (skl-i7k-2) UNSTABLE
>          Subgroup basic-flip-vs-wf_vblank:
>                  pass       -> DMESG-FAIL (skl-i5k-2) UNSTABLE
>                  pass       -> DMESG-FAIL (skl-i7k-2) UNSTABLE
>          Subgroup basic-plain-flip:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test kms_force_connector_basic:
>          Subgroup force-connector-state:
>                  skip       -> DMESG-FAIL (skl-i5k-2)
>                  skip       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup force-edid:
>                  skip       -> DMESG-FAIL (skl-i5k-2)
>                  skip       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup prune-stale-modes:
>                  skip       -> DMESG-FAIL (skl-i5k-2)
>                  skip       -> DMESG-FAIL (skl-i7k-2)
> Test kms_pipe_crc_basic:
>          Subgroup bad-nb-words-1:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-nb-words-3:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-pipe:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup bad-source:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup hang-read-crc-pipe-a:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup hang-read-crc-pipe-b:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup hang-read-crc-pipe-c:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup read-crc-pipe-a:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2) UNSTABLE
>          Subgroup read-crc-pipe-a-frame-sequence:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup read-crc-pipe-b:
>                  pass       -> DMESG-FAIL (skl-i5k-2) UNSTABLE
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup read-crc-pipe-b-frame-sequence:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup read-crc-pipe-c:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup read-crc-pipe-c-frame-sequence:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup suspend-read-crc-pipe-a:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup suspend-read-crc-pipe-b:
>                  dmesg-warn -> DMESG-FAIL (skl-i5k-2)
>                  dmesg-warn -> DMESG-FAIL (skl-i7k-2)
>          Subgroup suspend-read-crc-pipe-c:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test kms_psr_sink_crc:
>          Subgroup psr_basic:
>                  skip       -> DMESG-FAIL (skl-i5k-2)
>                  skip       -> DMESG-FAIL (skl-i7k-2)
> Test kms_setmode:
>          Subgroup basic-clone-single-crtc:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test pm_rpm:
>          Subgroup basic-pci-d3-state:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-rte:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test pm_rps:
>          Subgroup basic-api:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
> Test prime_self_import:
>          Subgroup basic-llseek-bad:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-llseek-size:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-with_fd_dup:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-with_one_bo:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-with_one_bo_two_files:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>          Subgroup basic-with_two_bos:
>                  pass       -> DMESG-FAIL (skl-i5k-2)
>                  pass       -> DMESG-FAIL (skl-i7k-2)
>
> bdw-nuci7        total:132  pass:122  dwarn:1   dfail:0   fail:0   skip:9
> bdw-ultra        total:132  pass:126  dwarn:0   dfail:0   fail:0   skip:6
> bsw-nuc-2        total:135  pass:115  dwarn:0   dfail:0   fail:0   skip:20
> byt-nuc          total:135  pass:121  dwarn:1   dfail:0   fail:0   skip:13
> hsw-brixbox      total:135  pass:128  dwarn:0   dfail:0   fail:0   skip:7
> hsw-gt2          total:135  pass:131  dwarn:0   dfail:0   fail:0   skip:4
> ilk-hp8440p      total:135  pass:100  dwarn:0   dfail:0   fail:0   skip:35
> ivb-t430s        total:135  pass:129  dwarn:0   dfail:0   fail:0   skip:6
> skl-i5k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1
> skl-i7k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1
> snb-dellxps      total:135  pass:123  dwarn:0   dfail:0   fail:0   skip:12
> snb-x220t        total:135  pass:123  dwarn:0   dfail:0   fail:1   skip:11
>
> Results at /archive/results/CI_IGT_test/Patchwork_1094/
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Looks like the CI SKL doesn't have the GuC firmware installed?

.Dave.

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-06 11:09 [PATCH 1/3] drm: Defer disabling the vblank IRQ until the next interrupt (for instant-off) Chris Wilson
@ 2016-01-06 13:20 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-06 13:20 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Summary ==

Built on 89d0d1b6f0e9c3a6b90476bd115cfe1881646fd6 drm-intel-nightly: 2016y-01m-06d-10h-37m-17s UTC integration manifest

Test gem_basic:
        Subgroup create-close:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_cpu_reloc:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_ctx_param_basic:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup invalid-param-set:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup non-root-set-no-zeromap:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup root-set-no-zeromap-disabled:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap_gtt:
        Subgroup basic-read:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup basic-write:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
Test kms_addfb_basic:
        Subgroup addfb25-modifier-no-flag:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup addfb25-x-tiled-mismatch:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-1024:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-63:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-999:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup clobberred-modifier:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup too-high:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup too-wide:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup unused-offsets:
                pass       -> DMESG-WARN (skl-i7k-2)
Test kms_flip:
        Subgroup basic-plain-flip:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test pm_rpm:
        Subgroup basic-rte:
                pass       -> DMESG-WARN (byt-nuc) UNSTABLE
Test prime_self_import:
        Subgroup basic-with_two_bos:
                pass       -> DMESG-WARN (skl-i7k-2)

bdw-nuci7        total:132  pass:1    dwarn:0   dfail:0   fail:0   skip:131
bsw-nuc-2        total:135  pass:115  dwarn:0   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:121  dwarn:1   dfail:0   fail:0   skip:13 
skl-i5k-2        total:135  pass:126  dwarn:1   dfail:0   fail:0   skip:8  
skl-i7k-2        total:135  pass:103  dwarn:20  dfail:3   fail:0   skip:8  
snb-dellxps      total:135  pass:123  dwarn:0   dfail:0   fail:0   skip:12 

Results at /archive/results/CI_IGT_test/Patchwork_1098/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-06  2:26 [PATCH 1/2] drm/i915: fix get digital port issue in intel_audio libin.yang
@ 2016-01-06 12:49 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-06 12:49 UTC (permalink / raw)
  To: libin.yang; +Cc: intel-gfx

== Summary ==

Built on 89d0d1b6f0e9c3a6b90476bd115cfe1881646fd6 drm-intel-nightly: 2016y-01m-06d-10h-37m-17s UTC integration manifest

Test kms_addfb_basic:
        Subgroup small-bo:
                skip       -> PASS       (bdw-nuci7)
Test pm_rpm:
        Subgroup basic-rte:
                pass       -> DMESG-WARN (byt-nuc) UNSTABLE

bdw-nuci7        total:132  pass:1    dwarn:0   dfail:0   fail:0   skip:131
bsw-nuc-2        total:135  pass:115  dwarn:0   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:121  dwarn:1   dfail:0   fail:0   skip:13 
skl-i5k-2        total:135  pass:125  dwarn:2   dfail:0   fail:0   skip:8  
skl-i7k-2        total:135  pass:125  dwarn:2   dfail:0   fail:0   skip:8  

HANGED snb-dellxps in igt@drv_module_reload_basic

Results at /archive/results/CI_IGT_test/Patchwork_1097/

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-05 19:18 [PATCH] drm/i915: Cleaning up DDI translation tables Rodrigo Vivi
@ 2016-01-06 11:30 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-06 11:30 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: intel-gfx

== Summary ==

HEAD is now at 89d0d1b drm-intel-nightly: 2016y-01m-06d-10h-37m-17s UTC integration manifest
Applying: drm/i915: Cleaning up DDI translation tables
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 drm/i915: Cleaning up DDI translation tables

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-05 19:10 [PATCH] drm/i915/guc: Enable GuC submission, where supported yu.dai
@ 2016-01-06 10:20 ` Patchwork
  2016-01-07 10:27   ` Dave Gordon
  0 siblings, 1 reply; 124+ messages in thread
From: Patchwork @ 2016-01-06 10:20 UTC (permalink / raw)
  To: yu.dai; +Cc: intel-gfx

== Summary ==

Built on 24b053acb16b4b3b021575e4ee30ffedd3ab2920 drm-intel-nightly: 2016y-01m-06d-08h-16m-11s UTC integration manifest

Test drv_getparams_basic:
        Subgroup basic-eu-total:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-subslice-total:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test drv_hangman:
        Subgroup error-state-basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_basic:
        Subgroup bad-close:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup create-close:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup create-fd-close:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_cpu_reloc:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_ctx_create:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_ctx_exec:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_ctx_param_basic:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-default:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup invalid-ctx-get:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup invalid-ctx-set:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup invalid-param-get:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup invalid-param-set:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup invalid-size-get:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup invalid-size-set:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup non-root-set:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup non-root-set-no-zeromap:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup root-set:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup root-set-no-zeromap-disabled:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup root-set-no-zeromap-enabled:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_exec_parse:
        Subgroup basic-allowed:
                skip       -> DMESG-FAIL (skl-i5k-2)
                skip       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-rejected:
                skip       -> DMESG-FAIL (skl-i5k-2)
                skip       -> DMESG-FAIL (skl-i7k-2)
Test gem_flink_basic:
        Subgroup bad-flink:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-open:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup double-flink:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup flink-lifetime:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_linear_blits:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_mmap:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-small-bo:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_mmap_gtt:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-copy:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-read:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-read-no-prefault:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-read-write:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-read-write-distinct:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-short:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-small-bo:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-small-bo-tiledx:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-small-bo-tiledy:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-small-copy:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-small-copy-xy:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-write:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-write-cpu-read-gtt:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-write-gtt:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-write-gtt-no-prefault:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-write-no-prefault:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-write-read:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-write-read-distinct:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_pread:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_pwrite:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_render_linear_blits:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_render_tiled_blits:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_storedw_loop:
        Subgroup basic-blt:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-bsd:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-render:
                dmesg-warn -> DMESG-FAIL (skl-i5k-2) UNSTABLE
                pass       -> DMESG-WARN (bdw-nuci7) UNSTABLE
                pass       -> DMESG-FAIL (skl-i7k-2) UNSTABLE
                dmesg-warn -> PASS       (bdw-ultra) UNSTABLE
        Subgroup basic-vebox:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_tiled_blits:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_tiled_fence_blits:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test kms_addfb_basic:
        Subgroup addfb25-bad-modifier:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup addfb25-framebuffer-vs-set-tiling:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup addfb25-modifier-no-flag:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup addfb25-x-tiled:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup addfb25-x-tiled-mismatch:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup addfb25-y-tiled:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup addfb25-y-tiled-small:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup addfb25-yf-tiled:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-pitch-0:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-pitch-1024:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-pitch-128:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-pitch-256:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-pitch-32:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-pitch-63:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-pitch-65536:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-pitch-999:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-x-tiled:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-y-tiled:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bo-too-small:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bo-too-small-due-to-tiling:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup clobberred-modifier:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup framebuffer-vs-set-tiling:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup no-handle:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup size-max:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup small-bo:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup tile-pitch-mismatch:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup too-high:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup too-wide:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup unused-handle:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup unused-modifier:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup unused-offsets:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup unused-pitches:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-flip-vs-modeset:
                pass       -> DMESG-FAIL (skl-i5k-2) UNSTABLE
                pass       -> DMESG-FAIL (skl-i7k-2) UNSTABLE
        Subgroup basic-flip-vs-wf_vblank:
                pass       -> DMESG-FAIL (skl-i5k-2) UNSTABLE
                pass       -> DMESG-FAIL (skl-i7k-2) UNSTABLE
        Subgroup basic-plain-flip:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test kms_force_connector_basic:
        Subgroup force-connector-state:
                skip       -> DMESG-FAIL (skl-i5k-2)
                skip       -> DMESG-FAIL (skl-i7k-2)
        Subgroup force-edid:
                skip       -> DMESG-FAIL (skl-i5k-2)
                skip       -> DMESG-FAIL (skl-i7k-2)
        Subgroup prune-stale-modes:
                skip       -> DMESG-FAIL (skl-i5k-2)
                skip       -> DMESG-FAIL (skl-i7k-2)
Test kms_pipe_crc_basic:
        Subgroup bad-nb-words-1:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-nb-words-3:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-pipe:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup bad-source:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup hang-read-crc-pipe-a:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup hang-read-crc-pipe-b:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup hang-read-crc-pipe-c:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup read-crc-pipe-a:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2) UNSTABLE
        Subgroup read-crc-pipe-a-frame-sequence:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup read-crc-pipe-b:
                pass       -> DMESG-FAIL (skl-i5k-2) UNSTABLE
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup read-crc-pipe-c:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup read-crc-pipe-c-frame-sequence:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup suspend-read-crc-pipe-a:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup suspend-read-crc-pipe-b:
                dmesg-warn -> DMESG-FAIL (skl-i5k-2)
                dmesg-warn -> DMESG-FAIL (skl-i7k-2)
        Subgroup suspend-read-crc-pipe-c:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test kms_psr_sink_crc:
        Subgroup psr_basic:
                skip       -> DMESG-FAIL (skl-i5k-2)
                skip       -> DMESG-FAIL (skl-i7k-2)
Test kms_setmode:
        Subgroup basic-clone-single-crtc:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test pm_rpm:
        Subgroup basic-pci-d3-state:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-rte:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test pm_rps:
        Subgroup basic-api:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test prime_self_import:
        Subgroup basic-llseek-bad:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-llseek-size:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-with_fd_dup:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-with_one_bo:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-with_one_bo_two_files:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup basic-with_two_bos:
                pass       -> DMESG-FAIL (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)

bdw-nuci7        total:132  pass:122  dwarn:1   dfail:0   fail:0   skip:9  
bdw-ultra        total:132  pass:126  dwarn:0   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:135  pass:115  dwarn:0   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:121  dwarn:1   dfail:0   fail:0   skip:13 
hsw-brixbox      total:135  pass:128  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:135  pass:131  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:135  pass:100  dwarn:0   dfail:0   fail:0   skip:35 
ivb-t430s        total:135  pass:129  dwarn:0   dfail:0   fail:0   skip:6  
skl-i5k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1  
skl-i7k-2        total:135  pass:2    dwarn:0   dfail:132 fail:0   skip:1  
snb-dellxps      total:135  pass:123  dwarn:0   dfail:0   fail:0   skip:12 
snb-x220t        total:135  pass:123  dwarn:0   dfail:0   fail:1   skip:11 

Results at /archive/results/CI_IGT_test/Patchwork_1094/

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-18 20:00 [PATCH v2 0/5] Add GuC ADS (Addition Data Structure) yu.dai
  2016-01-05 12:30 ` ✗ failure: Fi.CI.BAT Patchwork
@ 2016-01-06  9:01 ` Patchwork
  1 sibling, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-06  9:01 UTC (permalink / raw)
  To: yu.dai; +Cc: intel-gfx

== Summary ==

HEAD is now at 24b053a drm-intel-nightly: 2016y-01m-06d-08h-16m-11s UTC integration manifest
Applying: drm/i915/guc: Expose (intel)_lr_context_size()
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/intel_lrc.c
M	drivers/gpu/drm/i915/intel_lrc.h
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_lrc.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_lrc.c
Patch failed at 0001 drm/i915/guc: Expose (intel)_lr_context_size()

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-05 16:54 [PATCH] drm/i915: Tune down rpm wakelock debug checks Daniel Vetter
@ 2016-01-06  7:49 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-06  7:49 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

== Summary ==

Built on bc303261a81a96298b2f9e02734aeaa0a25421a6 drm-intel-nightly: 2016y-01m-05d-16h-47m-54s UTC integration manifest

Test gem_ctx_param_basic:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup invalid-param-set:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap_gtt:
        Subgroup basic-write:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_storedw_loop:
        Subgroup basic-render:
                pass       -> DMESG-WARN (skl-i5k-2) UNSTABLE
Test kms_addfb_basic:
        Subgroup too-wide:
                pass       -> DMESG-WARN (skl-i7k-2)
Test kms_flip:
        Subgroup basic-flip-vs-modeset:
                dmesg-warn -> PASS       (hsw-brixbox) UNSTABLE
        Subgroup basic-flip-vs-wf_vblank:
                dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
                dmesg-warn -> PASS       (hsw-gt2) UNSTABLE
                dmesg-warn -> PASS       (bdw-ultra) UNSTABLE
                dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
                dmesg-warn -> PASS       (ivb-t430s) UNSTABLE
                dmesg-warn -> PASS       (byt-nuc) UNSTABLE
                dmesg-warn -> PASS       (snb-x220t) UNSTABLE
                dmesg-warn -> PASS       (snb-dellxps) UNSTABLE
                dmesg-warn -> PASS       (hsw-brixbox) UNSTABLE
        Subgroup basic-plain-flip:
                dmesg-warn -> PASS       (ivb-t430s)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-a:
                dmesg-warn -> PASS       (snb-x220t) UNSTABLE
        Subgroup read-crc-pipe-b:
                dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
                dmesg-warn -> PASS       (snb-dellxps) UNSTABLE
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup read-crc-pipe-c-frame-sequence:
                dmesg-warn -> PASS       (bsw-nuc-2) UNSTABLE
Test kms_psr_sink_crc:
        Subgroup psr_basic:
                dmesg-warn -> PASS       (bdw-ultra)
Test pm_rpm:
        Subgroup basic-rte:
                pass       -> DMESG-WARN (byt-nuc) UNSTABLE

bdw-ultra        total:132  pass:126  dwarn:0   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:135  pass:115  dwarn:0   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:121  dwarn:1   dfail:0   fail:0   skip:13 
hsw-brixbox      total:135  pass:128  dwarn:0   dfail:0   fail:0   skip:7  
hsw-gt2          total:135  pass:131  dwarn:0   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:135  pass:100  dwarn:0   dfail:0   fail:0   skip:35 
ivb-t430s        total:135  pass:129  dwarn:0   dfail:0   fail:0   skip:6  
skl-i5k-2        total:135  pass:125  dwarn:2   dfail:0   fail:0   skip:8  
skl-i7k-2        total:135  pass:120  dwarn:6   dfail:1   fail:0   skip:8  
snb-dellxps      total:135  pass:123  dwarn:0   dfail:0   fail:0   skip:12 
snb-x220t        total:135  pass:123  dwarn:0   dfail:0   fail:1   skip:11 

Results at /archive/results/CI_IGT_test/Patchwork_1090/

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-21 13:10 [PATCH 00/15] drm/i915/bios: mipi sequence block v3, etc Jani Nikula
@ 2016-01-05 16:01 ` Patchwork
  2016-01-11 13:30 ` Patchwork
  2016-01-11 14:01 ` Patchwork
  2 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-05 16:01 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Summary ==

HEAD is now at 865e245 drm-intel-nightly: 2016y-01m-05d-15h-23m-53s UTC integration manifest
Applying: drm/i915/bios: add proper documentation for the Video BIOS Table (VBT)
Using index info to reconstruct a base tree...
M	Documentation/DocBook/gpu.tmpl
M	drivers/gpu/drm/i915/intel_bios.c
M	drivers/gpu/drm/i915/intel_bios.h
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_bios.h
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_bios.h
Auto-merging drivers/gpu/drm/i915/intel_bios.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_bios.c
Patch failed at 0001 drm/i915/bios: add proper documentation for the Video BIOS Table (VBT)

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-18 20:00 [PATCH v2 0/5] Add GuC ADS (Addition Data Structure) yu.dai
@ 2016-01-05 12:30 ` Patchwork
  2016-01-06  9:01 ` Patchwork
  1 sibling, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-05 12:30 UTC (permalink / raw)
  To: Dave Gordon; +Cc: intel-gfx

== Summary ==

HEAD is now at c837c0f drm-intel-nightly: 2016y-01m-05d-10h-35m-52s UTC integration manifest
Applying: drm/i915: add kerneldoc for intel_lr_context_size()
Applying: drm/i915/guc: Add GuC ADS (Addition Data Structure) - allocation
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0002 drm/i915/guc: Add GuC ADS (Addition Data Structure) - allocation

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-04 10:13 [PATCH] drm/i915: Force clean compilation with -Werror Chris Wilson
@ 2016-01-04 11:01 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-04 11:01 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Summary ==

HEAD is now at c1e9dc2 drm-intel-nightly: 2016y-01m-04d-09h-35m-16s UTC integration manifest
Applying: drm/i915: Force clean compilation with -Werror
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 drm/i915: Force clean compilation with -Werror

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

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

* ✗ failure: Fi.CI.BAT
  2016-01-04 10:10 [PATCH 1/3] drm: Balance error path for GEM handle allocation Chris Wilson
@ 2016-01-04 10:49 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2016-01-04 10:49 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Summary ==

Built on c1e9dc2dcb577438a6350c7f1cb36ba8ad0e1dfd drm-intel-nightly: 2016y-01m-04d-09h-35m-16s UTC integration manifest

Test gem_basic:
        Subgroup create-close:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_cpu_reloc:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_ctx_param_basic:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup invalid-param-set:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup non-root-set-no-zeromap:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup root-set-no-zeromap-disabled:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap_gtt:
        Subgroup basic-read:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup basic-write:
                pass       -> DMESG-WARN (skl-i7k-2)
Test kms_addfb_basic:
        Subgroup addfb25-modifier-no-flag:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup addfb25-x-tiled-mismatch:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-1024:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-63:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-999:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup clobberred-modifier:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup too-high:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup too-wide:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup unused-offsets:
                pass       -> DMESG-WARN (skl-i7k-2)
Test kms_flip:
        Subgroup basic-plain-flip:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-a-frame-sequence:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup read-crc-pipe-b:
                dmesg-warn -> PASS       (snb-dellxps)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test kms_setmode:
        Subgroup basic-clone-single-crtc:
                pass       -> DMESG-WARN (snb-dellxps)
Test prime_self_import:
        Subgroup basic-with_two_bos:
                pass       -> DMESG-WARN (skl-i7k-2)

bdw-nuci7        total:132  pass:122  dwarn:1   dfail:0   fail:0   skip:9  
bdw-ultra        total:132  pass:124  dwarn:2   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:135  pass:114  dwarn:1   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:120  dwarn:2   dfail:0   fail:0   skip:13 
hsw-brixbox      total:135  pass:126  dwarn:2   dfail:0   fail:0   skip:7  
hsw-gt2          total:135  pass:130  dwarn:1   dfail:0   fail:0   skip:4  
hsw-xps12        total:132  pass:125  dwarn:3   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:135  pass:99   dwarn:1   dfail:0   fail:0   skip:35 
ivb-t430s        total:135  pass:127  dwarn:2   dfail:0   fail:0   skip:6  
skl-i5k-2        total:135  pass:124  dwarn:3   dfail:0   fail:0   skip:8  
skl-i7k-2        total:135  pass:101  dwarn:22  dfail:3   fail:0   skip:8  
snb-dellxps      total:135  pass:121  dwarn:2   dfail:0   fail:0   skip:12 
snb-x220t        total:135  pass:121  dwarn:2   dfail:0   fail:1   skip:11 

Results at /archive/results/CI_IGT_test/Patchwork_1063/

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-31 12:45 [PATCH] drm/i915: Add RPM references in the *_get_hw_state functions Gabriel Feceoru
@ 2015-12-31 13:20 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-31 13:20 UTC (permalink / raw)
  To: Feceoru, Gabriel; +Cc: intel-gfx

== Summary ==

Built on 79686f613b3955a4ed09cee936e7f70ec4e61b67 drm-intel-nightly: 2015y-12m-30d-11h-59m-54s UTC integration manifest

Test gem_basic:
        Subgroup create-close:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_cpu_reloc:
        Subgroup basic:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test gem_ctx_param_basic:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup invalid-param-set:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup non-root-set-no-zeromap:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup root-set-no-zeromap-disabled:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap_gtt:
        Subgroup basic-read:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup basic-write:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (skl-i5k-2)
                dmesg-warn -> PASS       (skl-i7k-2)
Test kms_addfb_basic:
        Subgroup addfb25-modifier-no-flag:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup addfb25-x-tiled-mismatch:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-1024:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-63:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup bad-pitch-999:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup clobberred-modifier:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup too-high:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup too-wide:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup unused-offsets:
                pass       -> DMESG-WARN (skl-i7k-2)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (skl-i7k-2)
                dmesg-warn -> PASS       (ilk-hp8440p)
        Subgroup basic-flip-vs-modeset:
                dmesg-warn -> PASS       (bsw-nuc-2)
                dmesg-warn -> PASS       (hsw-brixbox)
                dmesg-warn -> PASS       (bdw-nuci7)
                dmesg-warn -> PASS       (ilk-hp8440p)
        Subgroup basic-plain-flip:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (snb-x220t)
                pass       -> DMESG-WARN (bdw-ultra)
                pass       -> DMESG-FAIL (skl-i7k-2)
Test kms_force_connector_basic:
        Subgroup force-connector-state:
                pass       -> SKIP       (snb-x220t)
Test kms_pipe_crc_basic:
        Subgroup hang-read-crc-pipe-a:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup hang-read-crc-pipe-b:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup hang-read-crc-pipe-c:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup read-crc-pipe-a:
                pass       -> DMESG-WARN (skl-i5k-2)
                dmesg-warn -> PASS       (snb-x220t)
                pass       -> DMESG-WARN (skl-i7k-2)
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup read-crc-pipe-a-frame-sequence:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup read-crc-pipe-b:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (snb-dellxps)
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-FAIL (skl-i7k-2)
        Subgroup read-crc-pipe-c:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup read-crc-pipe-c-frame-sequence:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup suspend-read-crc-pipe-a:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup suspend-read-crc-pipe-c:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (skl-i7k-2)
Test kms_psr_sink_crc:
        Subgroup psr_basic:
                dmesg-warn -> PASS       (bdw-ultra)
Test kms_setmode:
        Subgroup basic-clone-single-crtc:
                dmesg-warn -> PASS       (snb-dellxps)
Test pm_rpm:
        Subgroup basic-pci-d3-state:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup basic-rte:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (skl-i7k-2)
Test prime_self_import:
        Subgroup basic-with_two_bos:
                pass       -> DMESG-WARN (skl-i7k-2)

bdw-nuci7        total:132  pass:122  dwarn:1   dfail:0   fail:0   skip:9  
bdw-ultra        total:132  pass:124  dwarn:2   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:135  pass:114  dwarn:1   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:120  dwarn:2   dfail:0   fail:0   skip:13 
hsw-brixbox      total:135  pass:127  dwarn:1   dfail:0   fail:0   skip:7  
hsw-gt2          total:135  pass:130  dwarn:1   dfail:0   fail:0   skip:4  
hsw-xps12        total:132  pass:125  dwarn:3   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:135  pass:100  dwarn:0   dfail:0   fail:0   skip:35 
ivb-t430s        total:135  pass:127  dwarn:2   dfail:0   fail:0   skip:6  
skl-i5k-2        total:135  pass:108  dwarn:19  dfail:0   fail:0   skip:8  
skl-i7k-2        total:135  pass:89   dwarn:34  dfail:3   fail:0   skip:8  
snb-dellxps      total:135  pass:121  dwarn:2   dfail:0   fail:0   skip:12 
snb-x220t        total:135  pass:120  dwarn:2   dfail:0   fail:1   skip:12 

Results at /archive/results/CI_IGT_test/Patchwork_981/

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-30 22:56 [PATCH] drm/i915/bxt: Fix eDP panel power save/restore Matt Roper
@ 2015-12-31  7:43 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-31  7:43 UTC (permalink / raw)
  To: Matt Roper; +Cc: intel-gfx

== Summary ==

Built on 79686f613b3955a4ed09cee936e7f70ec4e61b67 drm-intel-nightly: 2015y-12m-30d-11h-59m-54s UTC integration manifest

Test gem_ctx_param_basic:
        Subgroup basic:
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup invalid-param-set:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_mmap_gtt:
        Subgroup basic-write:
                pass       -> DMESG-WARN (skl-i7k-2)
Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (skl-i5k-2)
Test kms_addfb_basic:
        Subgroup too-wide:
                pass       -> DMESG-WARN (skl-i7k-2)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                dmesg-warn -> PASS       (ilk-hp8440p)
        Subgroup basic-flip-vs-modeset:
                dmesg-warn -> PASS       (bsw-nuc-2)
                dmesg-warn -> PASS       (hsw-xps12)
                dmesg-warn -> PASS       (hsw-brixbox)
                dmesg-warn -> PASS       (bdw-nuci7)
                dmesg-warn -> PASS       (ilk-hp8440p)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-a:
                dmesg-warn -> PASS       (snb-x220t)
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup read-crc-pipe-b:
                pass       -> DMESG-WARN (snb-dellxps)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-FAIL (skl-i7k-2)
Test kms_setmode:
        Subgroup basic-clone-single-crtc:
                dmesg-warn -> PASS       (snb-dellxps)
Test pm_rpm:
        Subgroup basic-rte:
                dmesg-warn -> PASS       (byt-nuc)

bdw-nuci7        total:132  pass:122  dwarn:1   dfail:0   fail:0   skip:9  
bdw-ultra        total:132  pass:124  dwarn:2   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:135  pass:114  dwarn:1   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:121  dwarn:1   dfail:0   fail:0   skip:13 
hsw-brixbox      total:135  pass:127  dwarn:1   dfail:0   fail:0   skip:7  
hsw-gt2          total:135  pass:130  dwarn:1   dfail:0   fail:0   skip:4  
hsw-xps12        total:132  pass:126  dwarn:2   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:135  pass:100  dwarn:0   dfail:0   fail:0   skip:35 
ivb-t430s        total:135  pass:127  dwarn:2   dfail:0   fail:0   skip:6  
skl-i5k-2        total:135  pass:124  dwarn:3   dfail:0   fail:0   skip:8  
skl-i7k-2        total:135  pass:119  dwarn:7   dfail:1   fail:0   skip:8  
snb-dellxps      total:135  pass:121  dwarn:2   dfail:0   fail:0   skip:12 
snb-x220t        total:135  pass:122  dwarn:1   dfail:0   fail:1   skip:11 

Results at /archive/results/CI_IGT_test/Patchwork_970/

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-04 11:33 [PATCH] drm/i915: Avoid writing relocs with addresses in non-canonical form Michał Winiarski
@ 2015-12-29 16:20 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-29 16:20 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: intel-gfx

== Summary ==

Built on ec0382c73cb1adc972bebdd94afad3f0ea117114 drm-intel-nightly: 2015y-12m-23d-22h-28m-25s UTC integration manifest

Test gem_ctx_param_basic:
        Subgroup root-set:
                skip       -> PASS       (ilk-hp8440p)
Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (skl-i5k-2)
                dmesg-warn -> PASS       (bdw-nuci7)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                dmesg-warn -> PASS       (ilk-hp8440p)
        Subgroup basic-flip-vs-modeset:
                dmesg-warn -> PASS       (skl-i5k-2)
                pass       -> DMESG-WARN (hsw-xps12)
                pass       -> DMESG-WARN (hsw-brixbox)
                pass       -> DMESG-WARN (bdw-nuci7)
        Subgroup basic-plain-flip:
                pass       -> DMESG-WARN (snb-x220t)
                pass       -> DMESG-WARN (snb-dellxps)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-a:
                dmesg-warn -> PASS       (snb-x220t)
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup read-crc-pipe-b:
                pass       -> DMESG-WARN (skl-i5k-2)
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> DMESG-WARN (byt-nuc)
Test kms_setmode:
        Subgroup basic-clone-single-crtc:
                dmesg-warn -> PASS       (snb-dellxps)
Test pm_rpm:
        Subgroup basic-rte:
                dmesg-warn -> PASS       (hsw-xps12)
                pass       -> DMESG-WARN (byt-nuc)

bdw-nuci7        total:132  pass:121  dwarn:2   dfail:0   fail:0   skip:9  
bdw-ultra        total:132  pass:124  dwarn:2   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:135  pass:113  dwarn:2   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:119  dwarn:3   dfail:0   fail:0   skip:13 
hsw-brixbox      total:135  pass:126  dwarn:2   dfail:0   fail:0   skip:7  
hsw-xps12        total:132  pass:125  dwarn:3   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:135  pass:101  dwarn:0   dfail:0   fail:0   skip:34 
ivb-t430s        total:135  pass:127  dwarn:2   dfail:0   fail:0   skip:6  
skl-i5k-2        total:135  pass:124  dwarn:3   dfail:0   fail:0   skip:8  
skl-i7k-2        total:135  pass:123  dwarn:4   dfail:0   fail:0   skip:8  
snb-dellxps      total:135  pass:121  dwarn:2   dfail:0   fail:0   skip:12 
snb-x220t        total:135  pass:121  dwarn:2   dfail:0   fail:1   skip:11 

HANGED hsw-gt2 in igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c

Results at /archive/results/CI_IGT_test/Patchwork_945/

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-23  8:11 [PATCH] drm/i915: increase the tries for HDMI hotplug live status checking Gary Wang
@ 2015-12-23  8:49 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-23  8:49 UTC (permalink / raw)
  To: Gary Wang; +Cc: intel-gfx

== Summary ==

Built on 7e671e69deffb88d60687dacffe6e34a5d046500 drm-intel-nightly: 2015y-12m-22d-13h-28m-34s UTC integration manifest

Test gem_storedw_loop:
        Subgroup basic-render:
                pass       -> DMESG-WARN (skl-i5k-2)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                dmesg-warn -> PASS       (ilk-hp8440p)
        Subgroup basic-flip-vs-modeset:
                dmesg-warn -> PASS       (bsw-nuc-2)
                dmesg-warn -> PASS       (hsw-xps12)
                pass       -> DMESG-WARN (hsw-brixbox)
                dmesg-warn -> PASS       (ilk-hp8440p)
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup basic-flip-vs-wf_vblank:
                dmesg-warn -> PASS       (snb-x220t)
        Subgroup basic-plain-flip:
                pass       -> DMESG-WARN (hsw-xps12)
                pass       -> DMESG-WARN (bdw-nuci7)
Test kms_pipe_crc_basic:
        Subgroup hang-read-crc-pipe-a:
                pass       -> DMESG-WARN (snb-x220t)
        Subgroup read-crc-pipe-a:
                pass       -> DMESG-WARN (snb-x220t)
        Subgroup read-crc-pipe-a-frame-sequence:
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup read-crc-pipe-b:
                dmesg-warn -> PASS       (skl-i5k-2)
        Subgroup read-crc-pipe-c:
                pass       -> DMESG-WARN (skl-i5k-2)
Test kms_psr_sink_crc:
        Subgroup psr_basic:
                dmesg-warn -> PASS       (bdw-ultra)
Test pm_rpm:
        Subgroup basic-pci-d3-state:
                pass       -> DMESG-WARN (bdw-ultra)

bdw-nuci7        total:132  pass:121  dwarn:2   dfail:0   fail:0   skip:9  
bdw-ultra        total:132  pass:124  dwarn:2   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:135  pass:114  dwarn:1   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:120  dwarn:2   dfail:0   fail:0   skip:13 
hsw-brixbox      total:135  pass:126  dwarn:2   dfail:0   fail:0   skip:7  
hsw-xps12        total:132  pass:125  dwarn:3   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:135  pass:100  dwarn:0   dfail:0   fail:0   skip:35 
ivb-t430s        total:135  pass:127  dwarn:2   dfail:0   fail:0   skip:6  
skl-i5k-2        total:135  pass:123  dwarn:4   dfail:0   fail:0   skip:8  
skl-i7k-2        total:135  pass:124  dwarn:3   dfail:0   fail:0   skip:8  
snb-dellxps      total:135  pass:121  dwarn:2   dfail:0   fail:0   skip:12 
snb-x220t        total:135  pass:121  dwarn:2   dfail:0   fail:1   skip:11 

HANGED hsw-gt2 in igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c

Results at /archive/results/CI_IGT_test/Patchwork_801/

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-21 18:53 [PATCH] drm, i915: Fix pointer size cast Borislav Petkov
@ 2015-12-22  7:30 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-22  7:30 UTC (permalink / raw)
  To: Borislav Petkov; +Cc: intel-gfx

== Summary ==

HEAD is now at 78deeec drm-intel-nightly: 2015y-12m-21d-16h-03m-57s UTC integration manifest
Applying: drm, i915: Fix pointer size cast
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/intel_display.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_display.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_display.c
Patch failed at 0001 drm, i915: Fix pointer size cast

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-21 16:04 improve handling of the driver's internal default context Dave Gordon
@ 2015-12-22  7:20 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-22  7:20 UTC (permalink / raw)
  To: Dave Gordon; +Cc: intel-gfx

== Summary ==

Built on 78deeec98b10627fe2050ce8ebfa2ea2d5b9e6c7 drm-intel-nightly: 2015y-12m-21d-16h-03m-57s UTC integration manifest

Test gem_mmap_gtt:
        Subgroup basic-small-bo:
                dmesg-warn -> PASS       (bdw-nuci7)
Test gem_storedw_loop:
        Subgroup basic-render:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (bdw-nuci7)
Test kms_flip:
        Subgroup basic-flip-vs-modeset:
                pass       -> DMESG-WARN (skl-i5k-2)
                pass       -> DMESG-WARN (hsw-xps12)
                dmesg-warn -> PASS       (hsw-brixbox)
                skip       -> DMESG-WARN (bdw-nuci7)
        Subgroup basic-plain-flip:
                skip       -> PASS       (bdw-nuci7)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-a:
                pass       -> DMESG-WARN (snb-x220t)
                skip       -> PASS       (bdw-nuci7)
                dmesg-warn -> PASS       (byt-nuc)
        Subgroup read-crc-pipe-a-frame-sequence:
                pass       -> FAIL       (snb-x220t)
                skip       -> PASS       (bdw-nuci7)
                pass       -> DMESG-WARN (ilk-hp8440p)
        Subgroup read-crc-pipe-b:
                dmesg-warn -> PASS       (skl-i5k-2)
                dmesg-warn -> PASS       (hsw-xps12)
                pass       -> DMESG-WARN (snb-dellxps)
                skip       -> PASS       (bdw-nuci7)
        Subgroup read-crc-pipe-b-frame-sequence:
                skip       -> PASS       (bdw-nuci7)
        Subgroup read-crc-pipe-c:
                skip       -> PASS       (bdw-nuci7)
Test kms_setmode:
        Subgroup basic-clone-single-crtc:
                dmesg-warn -> PASS       (snb-dellxps)
Test pm_rpm:
        Subgroup basic-pci-d3-state:
                skip       -> PASS       (bdw-nuci7)
                pass       -> DMESG-WARN (bdw-ultra)
        Subgroup basic-rte:
                skip       -> PASS       (bdw-nuci7)
                dmesg-warn -> PASS       (bdw-ultra)

bdw-nuci7        total:132  pass:120  dwarn:3   dfail:0   fail:0   skip:9  
bdw-ultra        total:132  pass:124  dwarn:2   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:135  pass:114  dwarn:1   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:120  dwarn:2   dfail:0   fail:0   skip:13 
hsw-brixbox      total:135  pass:127  dwarn:1   dfail:0   fail:0   skip:7  
hsw-xps12        total:132  pass:125  dwarn:3   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:135  pass:99   dwarn:1   dfail:0   fail:0   skip:35 
ivb-t430s        total:135  pass:127  dwarn:2   dfail:0   fail:0   skip:6  
skl-i5k-2        total:135  pass:121  dwarn:6   dfail:0   fail:0   skip:8  
skl-i7k-2        total:135  pass:122  dwarn:5   dfail:0   fail:0   skip:8  
snb-dellxps      total:135  pass:121  dwarn:2   dfail:0   fail:0   skip:12 
snb-x220t        total:135  pass:120  dwarn:2   dfail:0   fail:2   skip:11 

HANGED hsw-gt2 in igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b

Results at /archive/results/CI_IGT_test/Patchwork_783/

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-21 15:33 [RFC v2] drm/i915/bdw+: Do not emit user interrupts when not needed Tvrtko Ursulin
@ 2015-12-21 17:30 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-21 17:30 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-gfx

== Summary ==

HEAD is now at 78deeec drm-intel-nightly: 2015y-12m-21d-16h-03m-57s UTC integration manifest
Applying: drm/i915/bdw+: Do not emit user interrupts when not needed
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/i915_drv.h
M	drivers/gpu/drm/i915/intel_lrc.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_lrc.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_lrc.c
Auto-merging drivers/gpu/drm/i915/i915_drv.h
Patch failed at 0001 drm/i915/bdw+: Do not emit user interrupts when not needed

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

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

* Re: ✗ failure:  Fi.CI.BAT
  2015-12-18 15:01 ` ✗ failure: Fi.CI.BAT Patchwork
@ 2015-12-21 13:44   ` Daniel Vetter
  0 siblings, 0 replies; 124+ messages in thread
From: Daniel Vetter @ 2015-12-21 13:44 UTC (permalink / raw)
  To: Patchwork; +Cc: intel-gfx

On Fri, Dec 18, 2015 at 03:01:16PM -0000, Patchwork wrote:
> == Summary ==
> 
> HEAD is now at da33ddb drm-intel-nightly: 2015y-12m-18d-13h-53m-06s UTC integration manifest
> Applying: drm/i915: Extend LRC pinning to cover GPU context writeback
> Repository lacks necessary blobs to fall back on 3-way merge.
> Cannot fall back to three-way merge.
> Patch failed at 0001 drm/i915: Extend LRC pinning to cover GPU context writeback

Dependent patches should be submitted as an entire series.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ failure: Fi.CI.BAT
  2015-12-18 19:55 [PATCH] drm/i915: edp resume/On time optimization abhay.kumar
@ 2015-12-19  7:30 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-19  7:30 UTC (permalink / raw)
  To: abhay.kumar; +Cc: intel-gfx

== Summary ==

HEAD is now at 7cdc548 drm-intel-nightly: 2015y-12m-18d-19h-26m-21s UTC integration manifest
Applying: drm/i915: edp resume/On time optimization.
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 drm/i915: edp resume/On time optimization.

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-18 17:24 [PATCH] drm/i915: Workaround CHV pipe C cursor fail ville.syrjala
@ 2015-12-18 17:49 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-18 17:49 UTC (permalink / raw)
  To: ville.syrjala; +Cc: intel-gfx

== Summary ==

Built on deb496ede4fc5e7affe15640a113ea9b5f1189e0 drm-intel-nightly: 2015y-12m-18d-16h-12m-24s UTC integration manifest

Test gem_storedw_loop:
        Subgroup basic-render:
                dmesg-warn -> PASS       (skl-i5k-2)
Test kms_flip:
        Subgroup basic-flip-vs-modeset:
                pass       -> DMESG-WARN (ilk-hp8440p)
                pass       -> DMESG-WARN (byt-nuc)
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-a:
                pass       -> DMESG-WARN (snb-x220t)
        Subgroup read-crc-pipe-a-frame-sequence:
                pass       -> FAIL       (snb-x220t)
        Subgroup read-crc-pipe-c:
                dmesg-warn -> PASS       (bdw-ultra)
                pass       -> DMESG-WARN (skl-i7k-2)
        Subgroup suspend-read-crc-pipe-a:
                dmesg-warn -> PASS       (snb-x220t)
Test kms_setmode:
        Subgroup basic-clone-single-crtc:
                dmesg-warn -> PASS       (snb-dellxps)
Test pm_rpm:
        Subgroup basic-pci-d3-state:
                pass       -> DMESG-WARN (bdw-ultra)

bdw-ultra        total:132  pass:124  dwarn:2   dfail:0   fail:0   skip:6  
bsw-nuc-2        total:135  pass:115  dwarn:0   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:120  dwarn:2   dfail:0   fail:0   skip:13 
hsw-brixbox      total:135  pass:126  dwarn:2   dfail:0   fail:0   skip:7  
hsw-gt2          total:135  pass:130  dwarn:1   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:135  pass:99   dwarn:1   dfail:0   fail:0   skip:35 
ivb-t430s        total:135  pass:127  dwarn:2   dfail:0   fail:0   skip:6  
skl-i5k-2        total:135  pass:122  dwarn:5   dfail:0   fail:0   skip:8  
skl-i7k-2        total:135  pass:121  dwarn:6   dfail:0   fail:0   skip:8  
snb-dellxps      total:135  pass:122  dwarn:1   dfail:0   fail:0   skip:12 
snb-x220t        total:135  pass:120  dwarn:2   dfail:0   fail:2   skip:11 

Results at /archive/results/CI_IGT_test/Patchwork_723/

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-18 15:17 [PATCH] Allow userspace to set NULL blob on properties Lionel Landwerlin
@ 2015-12-18 15:30 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-18 15:30 UTC (permalink / raw)
  To: Lionel Landwerlin; +Cc: intel-gfx

== Summary ==

HEAD is now at da33ddb drm-intel-nightly: 2015y-12m-18d-13h-53m-06s UTC integration manifest
Applying: drm/atomic: allow setting a blob to NULL using id = 0
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 drm/atomic: allow setting a blob to NULL using id = 0

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-18 14:41 [PATCH v9] drm/i915: Extend LRC pinning to cover GPU context writeback Nick Hoath
@ 2015-12-18 15:01 ` Patchwork
  2015-12-21 13:44   ` Daniel Vetter
  0 siblings, 1 reply; 124+ messages in thread
From: Patchwork @ 2015-12-18 15:01 UTC (permalink / raw)
  To: Nick Hoath; +Cc: intel-gfx

== Summary ==

HEAD is now at da33ddb drm-intel-nightly: 2015y-12m-18d-13h-53m-06s UTC integration manifest
Applying: drm/i915: Extend LRC pinning to cover GPU context writeback
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 drm/i915: Extend LRC pinning to cover GPU context writeback

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-18 11:59 [RFC] drm/i915/bdw+: Do not emit user interrupts when not needed Tvrtko Ursulin
@ 2015-12-18 12:30 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-18 12:30 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-gfx

== Summary ==

HEAD is now at 3c71db8 drm-intel-nightly: 2015y-12m-18d-09h-42m-49s UTC integration manifest
Applying: drm/i915/bdw+: Do not emit user interrupts when not needed
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/intel_lrc.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_lrc.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_lrc.c
Patch failed at 0001 drm/i915/bdw+: Do not emit user interrupts when not needed

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-18 10:53 [PATCH] drm/i915/bdw+: Replace list_del+list_add_tail with list_move_tail Tvrtko Ursulin
@ 2015-12-18 11:49 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-18 11:49 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-gfx

== Summary ==

Built on 3c71db89fc37b6061ce6b070ce73f89155da5f20 drm-intel-nightly: 2015y-12m-18d-09h-42m-49s UTC integration manifest

Test igt@kms_flip@basic-flip-vs-wf_vblank on ivb-t430s pass -> dmesg-warn
Test igt@kms_flip@basic-flip-vs-wf_vblank on byt-nuc dmesg-warn -> pass
Test igt@kms_pipe_crc_basic@read-crc-pipe-c-frame-sequence on bsw-nuc-2 pass -> dmesg-warn
Test igt@kms_pipe_crc_basic@hang-read-crc-pipe-a on ivb-t430s dmesg-warn -> pass
Test igt@gem_mmap@basic on byt-nuc dmesg-warn -> pass
Test igt@pm_rpm@basic-rte on byt-nuc dmesg-warn -> pass (UNSTABLE)
Test igt@gem_mmap_gtt@basic-write on bsw-nuc-2 dmesg-warn -> pass
Test igt@kms_pipe_crc_basic@read-crc-pipe-a on byt-nuc dmesg-warn -> pass
Test igt@kms_pipe_crc_basic@read-crc-pipe-c on skl-i5k-2 dmesg-warn -> pass
Test igt@kms_flip@basic-flip-vs-modeset on hsw-brixbox dmesg-warn -> pass
Test igt@kms_flip@basic-flip-vs-modeset on skl-i5k-2 pass -> dmesg-warn
Test igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence on snb-x220t pass -> fail

bsw-nuc-2        total:135  pass:114  dwarn:1   dfail:0   fail:0   skip:20 
byt-nuc          total:135  pass:122  dwarn:0   dfail:0   fail:0   skip:13 
hsw-brixbox      total:135  pass:127  dwarn:1   dfail:0   fail:0   skip:7  
hsw-gt2          total:135  pass:130  dwarn:1   dfail:0   fail:0   skip:4  
ilk-hp8440p      total:135  pass:100  dwarn:0   dfail:0   fail:2   skip:33 
ivb-t430s        total:135  pass:128  dwarn:1   dfail:1   fail:1   skip:4  
skl-i5k-2        total:135  pass:122  dwarn:5   dfail:0   fail:0   skip:8  
skl-i7k-2        total:135  pass:123  dwarn:4   dfail:0   fail:0   skip:8  
snb-dellxps      total:135  pass:121  dwarn:2   dfail:0   fail:0   skip:12 
snb-x220t        total:135  pass:120  dwarn:2   dfail:0   fail:2   skip:11 

Results at /archive/results/CI_IGT_test/Patchwork_714/

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-18 10:14 [PATCH] drm/i915/vlv: Modifying RC6 Promotion timer for Media workloads Namrta Salonie
@ 2015-12-18 10:30 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-18 10:30 UTC (permalink / raw)
  To: Namrta Salonie; +Cc: intel-gfx

== Summary ==

HEAD is now at 3c71db8 drm-intel-nightly: 2015y-12m-18d-09h-42m-49s UTC integration manifest
Applying: drm/i915/vlv: Modifying RC6 Promotion timer for Media workloads.
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 drm/i915/vlv: Modifying RC6 Promotion timer for Media workloads.

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-18  6:27 [PATCH] drm/i915: edp resume/On time optimization abhay.kumar
@ 2015-12-18  9:01 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-18  9:01 UTC (permalink / raw)
  To: abhay.kumar; +Cc: intel-gfx

== Summary ==

HEAD is now at ac2305b drm-intel-nightly: 2015y-12m-17d-16h-19m-23s UTC integration manifest
Applying: drm/i915: edp resume/On time optimization.
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 drm/i915: edp resume/On time optimization.

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

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

* ✗ failure: Fi.CI.BAT
  2015-12-18  1:16 [PATCH] drm/i915: HWSTAM is not a thing on SKL+ Ben Widawsky
@ 2015-12-18  8:30 ` Patchwork
  0 siblings, 0 replies; 124+ messages in thread
From: Patchwork @ 2015-12-18  8:30 UTC (permalink / raw)
  To: Ben Widawsky; +Cc: intel-gfx

== Summary ==

HEAD is now at ac2305b drm-intel-nightly: 2015y-12m-17d-16h-19m-23s UTC integration manifest
Applying: drm/i915: HWSTAM is not a thing on SKL+
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 drm/i915: HWSTAM is not a thing on SKL+

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

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

end of thread, other threads:[~2016-01-19 16:43 UTC | newest]

Thread overview: 124+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-08 11:29 [PATCH v2 00/13] Misc cleanups and locking fixes Tvrtko Ursulin
2016-01-08 11:29 ` [PATCH 01/13] drm/i915/bdw+: Replace list_del+list_add_tail with list_move_tail Tvrtko Ursulin
2016-01-11  8:22   ` Daniel Vetter
2016-01-08 11:29 ` [PATCH 02/13] drm/i915: Don't need a timer to wake us up Tvrtko Ursulin
2016-01-11  8:26   ` Daniel Vetter
2016-01-08 11:29 ` [PATCH 03/13] drm/i915: Avoid invariant conditionals in lrc interrupt handler Tvrtko Ursulin
2016-01-11  8:29   ` Daniel Vetter
2016-01-11  9:43     ` Tvrtko Ursulin
2016-01-08 11:29 ` [PATCH 04/13] drm/i915: Fail engine initialization if LRCA is incorrectly aligned Tvrtko Ursulin
2016-01-11  8:31   ` Daniel Vetter
2016-01-11 16:02     ` Dave Gordon
2016-01-11 23:31       ` Chris Wilson
2016-01-08 11:29 ` [PATCH 05/13] drm/i915: Cache LRCA in the context Tvrtko Ursulin
2016-01-11  8:38   ` Daniel Vetter
2016-01-11 19:41     ` Dave Gordon
2016-01-12  9:59       ` Tvrtko Ursulin
2016-01-08 11:29 ` [PATCH 06/13] drm/i915: Only grab timestamps when needed Tvrtko Ursulin
2016-01-11  8:42   ` Daniel Vetter
2016-01-11  9:45     ` Tvrtko Ursulin
2016-01-08 11:29 ` [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator Tvrtko Ursulin
2016-01-08 11:44   ` Chris Wilson
2016-01-11  8:48     ` Daniel Vetter
2016-01-08 13:29   ` Tvrtko Ursulin
2016-01-11  8:43     ` Daniel Vetter
2016-01-11  9:51       ` Tvrtko Ursulin
2016-01-12 16:19         ` Daniel Vetter
2016-01-12 16:43           ` Maarten Lankhorst
2016-01-13 14:35           ` Tvrtko Ursulin
2016-01-08 11:29 ` [PATCH 08/13] drm/i915: GEM operations need to be done under the big lock Tvrtko Ursulin
2016-01-08 11:40   ` Chris Wilson
2016-01-08 11:45     ` Chris Wilson
2016-01-08 11:47     ` Tvrtko Ursulin
2016-01-08 12:09       ` Chris Wilson
2016-01-08 12:40   ` Tvrtko Ursulin
2016-01-08 13:04   ` [PATCH v3 " Tvrtko Ursulin
2016-01-08 11:29 ` [PATCH 09/13] drm/i915: Remove two impossible asserts Tvrtko Ursulin
2016-01-11  8:49   ` Daniel Vetter
2016-01-08 11:29 ` [PATCH 10/13] drm/i915: Introduce dedicated safe object VMA iterator Tvrtko Ursulin
2016-01-08 11:29 ` [PATCH 11/13] drm/i915: Cache ringbuffer GTT address Tvrtko Ursulin
2016-01-08 11:37   ` Chris Wilson
2016-01-11  8:49   ` Daniel Vetter
2016-01-12 11:42     ` [PATCH v3 3/7] drm/i915: Cache ringbuffer GTT VMA Tvrtko Ursulin
2016-01-12 11:54       ` Chris Wilson
2016-01-11 16:16   ` [PATCH 11/13] drm/i915: Cache ringbuffer GTT address Dave Gordon
2016-01-11 17:44     ` Tvrtko Ursulin
2016-01-08 11:29 ` [PATCH 12/13] drm/i915: Add BKL asserts to get page helpers Tvrtko Ursulin
2016-01-08 11:37   ` Chris Wilson
2016-01-08 11:29 ` [PATCH 13/13] drm/i915: Cache LRC state page in the context Tvrtko Ursulin
2016-01-08 11:38 ` [PATCH v2 00/13] Misc cleanups and locking fixes Chris Wilson
2016-01-11  9:44 ` ✗ failure: Fi.CI.BAT Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2016-01-14 15:56 [PATCH v5 1/1] drm/i915/bxt: Check BIOS RC6 setup before enabling RC6 Sagar Arun Kamble
2016-01-14 16:30 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-14 15:12 [PATCH] drm/i915/bios: Fix the sequence size calculations for MIPI seq v3 Jani Nikula
2016-01-14 16:20 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-14 15:02 [PATCH] drm/i915: Decouple execbuf uAPI from internal implementation Tvrtko Ursulin
2016-01-14 15:49 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-14 13:22 [PATCH 0/8] drm/i915: Some more fb offsets[] prep stuff ville.syrjala
2016-01-14 14:49 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-14 15:00   ` Ville Syrjälä
2016-01-15 12:03     ` Chris Wilson
2016-01-14 12:53 [PATCH 1/2] drm/i915: Start WM computation from scratch on ILK-BDW ville.syrjala
2016-01-14 14:20 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-14 14:29   ` Ville Syrjälä
2016-01-19 13:58     ` Daniel Vetter
2016-01-19 14:09       ` Ville Syrjälä
2016-01-19 16:43         ` Daniel Vetter
2016-01-14 10:49 [PATCH] drm/i915: Clear pending reset requests during suspend Arun Siluvery
2016-01-14 12:20 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-14  6:16 [PATCH v14 0/11] Support for creating/using Stolen memory backed objects ankitprasad.r.sharma
2016-01-14 11:20 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-13 17:28 [PATCH 00/20] TDR/watchdog support for gen8 Arun Siluvery
2016-01-14  8:30 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-13 16:19 [PATCH v10] drm/i915: Extend LRC pinning to cover GPU context writeback Nick Hoath
2016-01-14  7:20 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-14 11:31   ` Nick Hoath
2016-01-19  9:08     ` Daniel Vetter
2016-01-13 14:35 [PATCH] drm/i915/dp: fall back to 18 bpp when sink capability is unknown Jani Nikula
2016-01-13 15:13 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-13 16:17   ` Daniel Vetter
2016-01-13 18:03     ` Chris Wilson
2016-01-13 12:52 [PATCH] drm/i915: Fix for reserved space WARN_ON when ring begin fails John.C.Harrison
2016-01-13 13:49 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-12 15:28 [PATCH 1/1] drm/i915: Reorder shadow registers on gen8 for faster lookup Mika Kuoppala
2016-01-12 16:20 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-11 21:40 [PATCH 00/22] drm_event cleanup, round 2 Daniel Vetter
2016-01-12  8:30 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-11 12:27 [PATCH v2 0/9] Kill off intel_crtc->atomic! Maarten Lankhorst
2016-01-11 12:49 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-11 14:30 ` Patchwork
2016-01-08 21:40 [PATCH] drm/i915: Reject invalid-pad for context-destroy ioctl Chris Wilson
2016-01-11 11:07 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-08 20:36 [PATCH 00/21] drm_event cleanup Daniel Vetter
2016-01-11 11:20 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-12 16:24   ` Daniel Vetter
2016-01-08 16:58 [PATCH 1/2] drm/i915: Store edram capabilities instead of fixed size Mika Kuoppala
2016-01-11 10:27 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-08 13:51 [PATCH 1/2] drm/i915: Enable mmio_debug for vlv/chv Mika Kuoppala
2016-01-11  9:59 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-11 12:50   ` Mika Kuoppala
2016-01-12 16:22     ` Daniel Vetter
2016-01-13  9:16       ` Mika Kuoppala
2016-01-13  9:20       ` Mika Kuoppala
2016-01-13  9:39         ` Daniel Vetter
2016-01-13  9:39           ` Daniel Vetter
2016-01-07 10:54 [PATCH 0/7] Explicitly pass crtc_state and plane_state to plane update functions Maarten Lankhorst
2016-01-11  8:53 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-07  9:10 [PATCH] drm/i915: Init power domains early in driver load Daniel Vetter
2016-01-11  9:12 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-06 20:53 [PATCH] drm/i915/guc: Fix a memory leak where guc->execbuf_client is not freed yu.dai
2016-01-13  8:49 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-06 11:09 [PATCH 1/3] drm: Defer disabling the vblank IRQ until the next interrupt (for instant-off) Chris Wilson
2016-01-06 13:20 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-06  2:26 [PATCH 1/2] drm/i915: fix get digital port issue in intel_audio libin.yang
2016-01-06 12:49 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-05 19:18 [PATCH] drm/i915: Cleaning up DDI translation tables Rodrigo Vivi
2016-01-06 11:30 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-05 19:10 [PATCH] drm/i915/guc: Enable GuC submission, where supported yu.dai
2016-01-06 10:20 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-07 10:27   ` Dave Gordon
2016-01-07 13:06     ` Jani Nikula
2016-01-07 14:36       ` Daniel Vetter
2016-01-07 14:51         ` Jani Nikula
2016-01-07 15:37         ` Dave Gordon
2016-01-05 16:54 [PATCH] drm/i915: Tune down rpm wakelock debug checks Daniel Vetter
2016-01-06  7:49 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-04 10:13 [PATCH] drm/i915: Force clean compilation with -Werror Chris Wilson
2016-01-04 11:01 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-04 10:10 [PATCH 1/3] drm: Balance error path for GEM handle allocation Chris Wilson
2016-01-04 10:49 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-31 12:45 [PATCH] drm/i915: Add RPM references in the *_get_hw_state functions Gabriel Feceoru
2015-12-31 13:20 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-30 22:56 [PATCH] drm/i915/bxt: Fix eDP panel power save/restore Matt Roper
2015-12-31  7:43 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-23  8:11 [PATCH] drm/i915: increase the tries for HDMI hotplug live status checking Gary Wang
2015-12-23  8:49 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-21 18:53 [PATCH] drm, i915: Fix pointer size cast Borislav Petkov
2015-12-22  7:30 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-21 16:04 improve handling of the driver's internal default context Dave Gordon
2015-12-22  7:20 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-21 15:33 [RFC v2] drm/i915/bdw+: Do not emit user interrupts when not needed Tvrtko Ursulin
2015-12-21 17:30 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-21 13:10 [PATCH 00/15] drm/i915/bios: mipi sequence block v3, etc Jani Nikula
2016-01-05 16:01 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-11 13:30 ` Patchwork
2016-01-11 14:01 ` Patchwork
2015-12-18 20:00 [PATCH v2 0/5] Add GuC ADS (Addition Data Structure) yu.dai
2016-01-05 12:30 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-06  9:01 ` Patchwork
2015-12-18 19:55 [PATCH] drm/i915: edp resume/On time optimization abhay.kumar
2015-12-19  7:30 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-18 17:24 [PATCH] drm/i915: Workaround CHV pipe C cursor fail ville.syrjala
2015-12-18 17:49 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-18 15:17 [PATCH] Allow userspace to set NULL blob on properties Lionel Landwerlin
2015-12-18 15:30 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-18 14:41 [PATCH v9] drm/i915: Extend LRC pinning to cover GPU context writeback Nick Hoath
2015-12-18 15:01 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-21 13:44   ` Daniel Vetter
2015-12-18 11:59 [RFC] drm/i915/bdw+: Do not emit user interrupts when not needed Tvrtko Ursulin
2015-12-18 12:30 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-18 10:53 [PATCH] drm/i915/bdw+: Replace list_del+list_add_tail with list_move_tail Tvrtko Ursulin
2015-12-18 11:49 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-18 10:14 [PATCH] drm/i915/vlv: Modifying RC6 Promotion timer for Media workloads Namrta Salonie
2015-12-18 10:30 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-18  6:27 [PATCH] drm/i915: edp resume/On time optimization abhay.kumar
2015-12-18  9:01 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-18  1:16 [PATCH] drm/i915: HWSTAM is not a thing on SKL+ Ben Widawsky
2015-12-18  8:30 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-14 16:23 [PATCH 00/10] drm/i915: Fixes from my attempt at running igt on gen2 ville.syrjala
2016-01-12  7:49 ` ✗ failure: Fi.CI.BAT Patchwork
2015-12-04 11:33 [PATCH] drm/i915: Avoid writing relocs with addresses in non-canonical form Michał Winiarski
2015-12-29 16:20 ` ✗ failure: Fi.CI.BAT Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.