* [Intel-gfx] [PATCH] drm/i915: Prevent waiting inside ring construction for critical sections
@ 2021-02-03 12:47 Chris Wilson
2021-02-03 14:55 ` [Intel-gfx] [PATCH v2] " Chris Wilson
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Chris Wilson @ 2021-02-03 12:47 UTC (permalink / raw)
To: intel-gfx; +Cc: Chris Wilson
From some contexts, we may not be allowed to wait during request
construction. For example, in the powermanagement handler that should
never block (as the engine was idle) and the driver would be crippled if
we did. Similarly, the user may request that the execbuf does not block,
and so would prefer to handle an EWOULDBLOCK error instead. In both
cases we need to propagate the flag to various blocking wait points, the
first and usually hit is intel_ring::wait_for_space().
Testcase: igt/gem_ctx_ringsize/spin
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
.../gpu/drm/i915/gem/i915_gem_execbuffer.c | 3 +++
drivers/gpu/drm/i915/gt/intel_ring.c | 19 ++++++++--------
drivers/gpu/drm/i915/i915_request.c | 2 ++
drivers/gpu/drm/i915/i915_request.h | 22 +++++++++++++++++++
4 files changed, 37 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index fe170186dd42..903eccad7ae2 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -3289,6 +3289,9 @@ i915_gem_do_execbuffer(struct drm_device *dev,
goto err_vma;
}
+ if (file->f_flags & O_NONBLOCK)
+ i915_request_set_nowait(eb.request);
+
if (in_fence) {
if (args->flags & I915_EXEC_FENCE_SUBMIT)
err = i915_request_await_execution(eb.request,
diff --git a/drivers/gpu/drm/i915/gt/intel_ring.c b/drivers/gpu/drm/i915/gt/intel_ring.c
index aee0a77c77e0..9f149fdc8416 100644
--- a/drivers/gpu/drm/i915/gt/intel_ring.c
+++ b/drivers/gpu/drm/i915/gt/intel_ring.c
@@ -184,9 +184,10 @@ void intel_ring_free(struct kref *ref)
static noinline int
wait_for_space(struct intel_ring *ring,
- struct intel_timeline *tl,
+ struct i915_request *rq,
unsigned int bytes)
{
+ struct intel_timeline *tl = i915_request_timeline(rq);
struct i915_request *target;
long timeout;
@@ -207,11 +208,13 @@ wait_for_space(struct intel_ring *ring,
if (GEM_WARN_ON(&target->link == &tl->requests))
return -ENOSPC;
- timeout = i915_request_wait(target,
- I915_WAIT_INTERRUPTIBLE,
- MAX_SCHEDULE_TIMEOUT);
- if (timeout < 0)
- return timeout;
+ timeout = MAX_SCHEDULE_TIMEOUT;
+ if (i915_request_nowait(rq))
+ timeout = 0;
+
+ timeout = i915_request_wait(target, I915_WAIT_INTERRUPTIBLE, timeout);
+ if (unlikely(timeout < 0))
+ return i915_request_nowait(rq) ? -EWOULDBLOCK : timeout;
i915_request_retire_upto(target);
@@ -271,9 +274,7 @@ u32 *intel_ring_begin(struct i915_request *rq, unsigned int num_dwords)
*/
GEM_BUG_ON(!rq->reserved_space);
- ret = wait_for_space(ring,
- i915_request_timeline(rq),
- total_bytes);
+ ret = wait_for_space(ring, rq, total_bytes);
if (unlikely(ret))
return ERR_PTR(ret);
}
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index a336d6c40d8b..44b4c2a9f454 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -857,6 +857,8 @@ __i915_request_create(struct intel_context *ce, gfp_t gfp)
kref_init(&rq->fence.refcount);
rq->fence.flags = 0;
+ if ((flags & __GFP_RECLAIM) == 0)
+ __set_bit(I915_FENCE_FLAG_NOWAIT, &rq->fence.flags);
rq->fence.error = 0;
INIT_LIST_HEAD(&rq->fence.cb_list);
diff --git a/drivers/gpu/drm/i915/i915_request.h b/drivers/gpu/drm/i915/i915_request.h
index c0bd4cb8786a..4cecfecc82e5 100644
--- a/drivers/gpu/drm/i915/i915_request.h
+++ b/drivers/gpu/drm/i915/i915_request.h
@@ -137,6 +137,18 @@ enum {
* the GPU. Here we track such boost requests on a per-request basis.
*/
I915_FENCE_FLAG_BOOST,
+
+ /*
+ * I915_FENCE_FLAG_NOWAIT - avoid waits while constructing the request
+ *
+ * We may wish to construct a request from some contexts where
+ * we do not want to wait, and sometimes the client would prefer
+ * to have a nonblocking interface. We may have to wait in a few place
+ * during request construction (e.g. waiting for space in the
+ * ringbuffer), this flag allows us to opt out of those waits and
+ * return -EAGAIN instead.
+ */
+ I915_FENCE_FLAG_NOWAIT,
};
/**
@@ -558,6 +570,16 @@ static inline void i915_request_mark_complete(struct i915_request *rq)
(u32 *)&rq->fence.seqno);
}
+static inline bool i915_request_nowait(const struct i915_request *rq)
+{
+ return test_bit(I915_FENCE_FLAG_NOWAIT, &rq->fence.flags);
+}
+
+static inline void i915_request_set_nowait(struct i915_request *rq)
+{
+ set_bit(I915_FENCE_FLAG_NOWAIT, &rq->fence.flags);
+}
+
static inline bool i915_request_has_waitboost(const struct i915_request *rq)
{
return test_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags);
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Intel-gfx] [PATCH v2] drm/i915: Prevent waiting inside ring construction for critical sections
2021-02-03 12:47 [Intel-gfx] [PATCH] drm/i915: Prevent waiting inside ring construction for critical sections Chris Wilson
@ 2021-02-03 14:55 ` Chris Wilson
2021-02-03 15:00 ` [Intel-gfx] [PATCH v3] " Chris Wilson
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2021-02-03 14:55 UTC (permalink / raw)
To: intel-gfx; +Cc: Chris Wilson
From some contexts, we may not be allowed to wait during request
construction. For example, in the powermanagement handler that should
never block (as the engine was idle) and the driver would be crippled if
we did. Similarly, the user may request that the execbuf does not block,
and so would prefer to handle an EWOULDBLOCK error instead. In both
cases we need to propagate the flag to various blocking wait points, the
first and usually hit is intel_ring::wait_for_space().
Testcase: igt/gem_ctx_ringsize/spin
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
.../gpu/drm/i915/gem/i915_gem_execbuffer.c | 13 +++++++--
.../gpu/drm/i915/gt/intel_engine_heartbeat.c | 7 ++++-
drivers/gpu/drm/i915/gt/intel_engine_pm.c | 2 +-
drivers/gpu/drm/i915/gt/intel_ring.c | 19 +++++++------
drivers/gpu/drm/i915/i915_request.c | 8 +++---
drivers/gpu/drm/i915/i915_request.h | 28 +++++++++++++++++--
6 files changed, 58 insertions(+), 19 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index fe170186dd42..03d5fac24a72 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -1265,6 +1265,8 @@ static int __reloc_gpu_alloc(struct i915_execbuffer *eb,
struct intel_gt_buffer_pool_node *pool = eb->reloc_pool;
struct i915_request *rq;
struct i915_vma *batch;
+ unsigned long flags;
+ gfp_t gfp;
u32 *cmd;
int err;
@@ -1300,8 +1302,15 @@ static int __reloc_gpu_alloc(struct i915_execbuffer *eb,
if (err)
goto err_unmap;
+ flags = 0;
+ gfp = GFP_KERNEL | __GFP_NOWARN;
+ if (eb->file->filp->f_flags & O_NONBLOCK) {
+ flags = BIT(I915_FENCE_FLAG_NOWAIT);
+ gfp |= __GFP_RETRY_MAYFAIL;
+ }
+
if (engine == eb->context->engine) {
- rq = i915_request_create(eb->context);
+ rq = __i915_request_create(eb->context, flags, gfp);
} else {
struct intel_context *ce = eb->reloc_context;
@@ -1321,7 +1330,7 @@ static int __reloc_gpu_alloc(struct i915_execbuffer *eb,
if (err)
goto err_unpin;
- rq = i915_request_create(ce);
+ rq = __i915_request_create(ce, flags, gfp);
intel_context_unpin(ce);
}
if (IS_ERR(rq)) {
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
index 778bcae5ef2c..12b58ba5bcd8 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
@@ -40,9 +40,14 @@ static struct i915_request *
heartbeat_create(struct intel_context *ce, gfp_t gfp)
{
struct i915_request *rq;
+ unsigned long flags;
+
+ flags = 0;
+ if ((gfp & __GFP_RECLAIM) == 0)
+ flags = BIT(I915_FENCE_FLAG_NOWAIT);
intel_context_enter(ce);
- rq = __i915_request_create(ce, gfp);
+ rq = __i915_request_create_locked(ce, flags, gfp);
intel_context_exit(ce);
return rq;
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.c b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
index 6372d7826bc9..d9bed542136a 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_pm.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
@@ -200,7 +200,7 @@ static bool switch_to_kernel_context(struct intel_engine_cs *engine)
flags = __timeline_mark_lock(ce);
GEM_BUG_ON(atomic_read(&ce->timeline->active_count) < 0);
- rq = __i915_request_create(ce, GFP_NOWAIT);
+ rq = __i915_request_create_locked(ce, BIT(I915_FENCE_FLAG_NOWAIT), GFP_NOWAIT);
if (IS_ERR(rq))
/* Context switch failed, hope for the best! Maybe reset? */
goto out_unlock;
diff --git a/drivers/gpu/drm/i915/gt/intel_ring.c b/drivers/gpu/drm/i915/gt/intel_ring.c
index aee0a77c77e0..9f149fdc8416 100644
--- a/drivers/gpu/drm/i915/gt/intel_ring.c
+++ b/drivers/gpu/drm/i915/gt/intel_ring.c
@@ -184,9 +184,10 @@ void intel_ring_free(struct kref *ref)
static noinline int
wait_for_space(struct intel_ring *ring,
- struct intel_timeline *tl,
+ struct i915_request *rq,
unsigned int bytes)
{
+ struct intel_timeline *tl = i915_request_timeline(rq);
struct i915_request *target;
long timeout;
@@ -207,11 +208,13 @@ wait_for_space(struct intel_ring *ring,
if (GEM_WARN_ON(&target->link == &tl->requests))
return -ENOSPC;
- timeout = i915_request_wait(target,
- I915_WAIT_INTERRUPTIBLE,
- MAX_SCHEDULE_TIMEOUT);
- if (timeout < 0)
- return timeout;
+ timeout = MAX_SCHEDULE_TIMEOUT;
+ if (i915_request_nowait(rq))
+ timeout = 0;
+
+ timeout = i915_request_wait(target, I915_WAIT_INTERRUPTIBLE, timeout);
+ if (unlikely(timeout < 0))
+ return i915_request_nowait(rq) ? -EWOULDBLOCK : timeout;
i915_request_retire_upto(target);
@@ -271,9 +274,7 @@ u32 *intel_ring_begin(struct i915_request *rq, unsigned int num_dwords)
*/
GEM_BUG_ON(!rq->reserved_space);
- ret = wait_for_space(ring,
- i915_request_timeline(rq),
- total_bytes);
+ ret = wait_for_space(ring, rq, total_bytes);
if (unlikely(ret))
return ERR_PTR(ret);
}
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index a336d6c40d8b..04ca4fe54633 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -799,7 +799,7 @@ static void __i915_request_ctor(void *arg)
}
struct i915_request *
-__i915_request_create(struct intel_context *ce, gfp_t gfp)
+__i915_request_create_locked(struct intel_context *ce, unsigned long flags, gfp_t gfp)
{
struct intel_timeline *tl = ce->timeline;
struct i915_request *rq;
@@ -856,7 +856,7 @@ __i915_request_create(struct intel_context *ce, gfp_t gfp)
rq->execution_mask = ce->engine->mask;
kref_init(&rq->fence.refcount);
- rq->fence.flags = 0;
+ rq->fence.flags = flags;
rq->fence.error = 0;
INIT_LIST_HEAD(&rq->fence.cb_list);
@@ -934,7 +934,7 @@ __i915_request_create(struct intel_context *ce, gfp_t gfp)
}
struct i915_request *
-i915_request_create(struct intel_context *ce)
+__i915_request_create(struct intel_context *ce, unsigned long flags, gfp_t gfp)
{
struct i915_request *rq;
struct intel_timeline *tl;
@@ -949,7 +949,7 @@ i915_request_create(struct intel_context *ce)
i915_request_retire(rq);
intel_context_enter(ce);
- rq = __i915_request_create(ce, GFP_KERNEL);
+ rq = __i915_request_create_locked(ce, flags, gfp);
intel_context_exit(ce); /* active reference transferred to request */
if (IS_ERR(rq))
goto err_unlock;
diff --git a/drivers/gpu/drm/i915/i915_request.h b/drivers/gpu/drm/i915/i915_request.h
index c0bd4cb8786a..43230037f469 100644
--- a/drivers/gpu/drm/i915/i915_request.h
+++ b/drivers/gpu/drm/i915/i915_request.h
@@ -137,6 +137,18 @@ enum {
* the GPU. Here we track such boost requests on a per-request basis.
*/
I915_FENCE_FLAG_BOOST,
+
+ /*
+ * I915_FENCE_FLAG_NOWAIT - avoid waits while constructing the request
+ *
+ * We may wish to construct a request from some contexts where
+ * we do not want to wait, and sometimes the client would prefer
+ * to have a nonblocking interface. We may have to wait in a few place
+ * during request construction (e.g. waiting for space in the
+ * ringbuffer), this flag allows us to opt out of those waits and
+ * return -EAGAIN instead.
+ */
+ I915_FENCE_FLAG_NOWAIT,
};
/**
@@ -305,9 +317,16 @@ static inline bool dma_fence_is_i915(const struct dma_fence *fence)
struct kmem_cache *i915_request_slab_cache(void);
struct i915_request * __must_check
-__i915_request_create(struct intel_context *ce, gfp_t gfp);
+__i915_request_create_locked(struct intel_context *ce,
+ unsigned long flags, gfp_t gfp);
struct i915_request * __must_check
-i915_request_create(struct intel_context *ce);
+__i915_request_create(struct intel_context *ce,
+ unsigned long flags, gfp_t gfp);
+static inline struct i915_request *
+i915_request_create(struct intel_context *ce)
+{
+ return __i915_request_create(ce, 0, GFP_KERNEL);
+}
void __i915_request_skip(struct i915_request *rq);
void i915_request_set_error_once(struct i915_request *rq, int error);
@@ -558,6 +577,11 @@ static inline void i915_request_mark_complete(struct i915_request *rq)
(u32 *)&rq->fence.seqno);
}
+static inline bool i915_request_nowait(const struct i915_request *rq)
+{
+ return test_bit(I915_FENCE_FLAG_NOWAIT, &rq->fence.flags);
+}
+
static inline bool i915_request_has_waitboost(const struct i915_request *rq)
{
return test_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags);
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Intel-gfx] [PATCH v3] drm/i915: Prevent waiting inside ring construction for critical sections
2021-02-03 12:47 [Intel-gfx] [PATCH] drm/i915: Prevent waiting inside ring construction for critical sections Chris Wilson
2021-02-03 14:55 ` [Intel-gfx] [PATCH v2] " Chris Wilson
@ 2021-02-03 15:00 ` Chris Wilson
2021-02-03 16:58 ` kernel test robot
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2021-02-03 15:00 UTC (permalink / raw)
To: intel-gfx; +Cc: Chris Wilson
From some contexts, we may not be allowed to wait during request
construction. For example, in the powermanagement handler that should
never block (as the engine was idle) and the driver would be crippled if
we did. Similarly, the user may request that the execbuf does not block,
and so would prefer to handle an EWOULDBLOCK error instead. In both
cases we need to propagate the flag to various blocking wait points, the
first and usually hit is intel_ring::wait_for_space().
Testcase: igt/gem_ctx_ringsize/spin
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
.../gpu/drm/i915/gem/i915_gem_execbuffer.c | 20 +++++++++++--
.../gpu/drm/i915/gt/intel_engine_heartbeat.c | 7 ++++-
drivers/gpu/drm/i915/gt/intel_engine_pm.c | 2 +-
drivers/gpu/drm/i915/gt/intel_ring.c | 19 +++++++------
drivers/gpu/drm/i915/i915_request.c | 8 +++---
drivers/gpu/drm/i915/i915_request.h | 28 +++++++++++++++++--
6 files changed, 64 insertions(+), 20 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index fe170186dd42..d2dc9f093119 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -1256,6 +1256,20 @@ static int reloc_move_to_gpu(struct i915_request *rq, struct i915_vma *vma)
return err;
}
+static struct i915_request *
+eb_request_create(struct i915_execbuffer *eb, struct intel_context *ce)
+{
+ gfp_t gfp = GFP_KERNEL | __GFP_NOWARN;
+ unsigned long flags= 0;
+
+ if (eb->file->filp->f_flags & O_NONBLOCK) {
+ flags = BIT(I915_FENCE_FLAG_NOWAIT);
+ gfp |= __GFP_RETRY_MAYFAIL;
+ }
+
+ return __i915_request_create(ce, flags, gfp);
+}
+
static int __reloc_gpu_alloc(struct i915_execbuffer *eb,
struct intel_engine_cs *engine,
struct i915_vma *vma,
@@ -1301,7 +1315,7 @@ static int __reloc_gpu_alloc(struct i915_execbuffer *eb,
goto err_unmap;
if (engine == eb->context->engine) {
- rq = i915_request_create(eb->context);
+ rq = eb_request_create(eb, eb->context);
} else {
struct intel_context *ce = eb->reloc_context;
@@ -1321,7 +1335,7 @@ static int __reloc_gpu_alloc(struct i915_execbuffer *eb,
if (err)
goto err_unpin;
- rq = i915_request_create(ce);
+ rq = eb_request_create(eb, ce);
intel_context_unpin(ce);
}
if (IS_ERR(rq)) {
@@ -3283,7 +3297,7 @@ i915_gem_do_execbuffer(struct drm_device *dev,
GEM_BUG_ON(eb.reloc_cache.rq);
/* Allocate a request for this batch buffer nice and early. */
- eb.request = i915_request_create(eb.context);
+ eb.request = eb_request_create(&eb, eb.context);
if (IS_ERR(eb.request)) {
err = PTR_ERR(eb.request);
goto err_vma;
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
index 778bcae5ef2c..12b58ba5bcd8 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
@@ -40,9 +40,14 @@ static struct i915_request *
heartbeat_create(struct intel_context *ce, gfp_t gfp)
{
struct i915_request *rq;
+ unsigned long flags;
+
+ flags = 0;
+ if ((gfp & __GFP_RECLAIM) == 0)
+ flags = BIT(I915_FENCE_FLAG_NOWAIT);
intel_context_enter(ce);
- rq = __i915_request_create(ce, gfp);
+ rq = __i915_request_create_locked(ce, flags, gfp);
intel_context_exit(ce);
return rq;
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.c b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
index 6372d7826bc9..d9bed542136a 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_pm.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
@@ -200,7 +200,7 @@ static bool switch_to_kernel_context(struct intel_engine_cs *engine)
flags = __timeline_mark_lock(ce);
GEM_BUG_ON(atomic_read(&ce->timeline->active_count) < 0);
- rq = __i915_request_create(ce, GFP_NOWAIT);
+ rq = __i915_request_create_locked(ce, BIT(I915_FENCE_FLAG_NOWAIT), GFP_NOWAIT);
if (IS_ERR(rq))
/* Context switch failed, hope for the best! Maybe reset? */
goto out_unlock;
diff --git a/drivers/gpu/drm/i915/gt/intel_ring.c b/drivers/gpu/drm/i915/gt/intel_ring.c
index aee0a77c77e0..9f149fdc8416 100644
--- a/drivers/gpu/drm/i915/gt/intel_ring.c
+++ b/drivers/gpu/drm/i915/gt/intel_ring.c
@@ -184,9 +184,10 @@ void intel_ring_free(struct kref *ref)
static noinline int
wait_for_space(struct intel_ring *ring,
- struct intel_timeline *tl,
+ struct i915_request *rq,
unsigned int bytes)
{
+ struct intel_timeline *tl = i915_request_timeline(rq);
struct i915_request *target;
long timeout;
@@ -207,11 +208,13 @@ wait_for_space(struct intel_ring *ring,
if (GEM_WARN_ON(&target->link == &tl->requests))
return -ENOSPC;
- timeout = i915_request_wait(target,
- I915_WAIT_INTERRUPTIBLE,
- MAX_SCHEDULE_TIMEOUT);
- if (timeout < 0)
- return timeout;
+ timeout = MAX_SCHEDULE_TIMEOUT;
+ if (i915_request_nowait(rq))
+ timeout = 0;
+
+ timeout = i915_request_wait(target, I915_WAIT_INTERRUPTIBLE, timeout);
+ if (unlikely(timeout < 0))
+ return i915_request_nowait(rq) ? -EWOULDBLOCK : timeout;
i915_request_retire_upto(target);
@@ -271,9 +274,7 @@ u32 *intel_ring_begin(struct i915_request *rq, unsigned int num_dwords)
*/
GEM_BUG_ON(!rq->reserved_space);
- ret = wait_for_space(ring,
- i915_request_timeline(rq),
- total_bytes);
+ ret = wait_for_space(ring, rq, total_bytes);
if (unlikely(ret))
return ERR_PTR(ret);
}
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index a336d6c40d8b..04ca4fe54633 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -799,7 +799,7 @@ static void __i915_request_ctor(void *arg)
}
struct i915_request *
-__i915_request_create(struct intel_context *ce, gfp_t gfp)
+__i915_request_create_locked(struct intel_context *ce, unsigned long flags, gfp_t gfp)
{
struct intel_timeline *tl = ce->timeline;
struct i915_request *rq;
@@ -856,7 +856,7 @@ __i915_request_create(struct intel_context *ce, gfp_t gfp)
rq->execution_mask = ce->engine->mask;
kref_init(&rq->fence.refcount);
- rq->fence.flags = 0;
+ rq->fence.flags = flags;
rq->fence.error = 0;
INIT_LIST_HEAD(&rq->fence.cb_list);
@@ -934,7 +934,7 @@ __i915_request_create(struct intel_context *ce, gfp_t gfp)
}
struct i915_request *
-i915_request_create(struct intel_context *ce)
+__i915_request_create(struct intel_context *ce, unsigned long flags, gfp_t gfp)
{
struct i915_request *rq;
struct intel_timeline *tl;
@@ -949,7 +949,7 @@ i915_request_create(struct intel_context *ce)
i915_request_retire(rq);
intel_context_enter(ce);
- rq = __i915_request_create(ce, GFP_KERNEL);
+ rq = __i915_request_create_locked(ce, flags, gfp);
intel_context_exit(ce); /* active reference transferred to request */
if (IS_ERR(rq))
goto err_unlock;
diff --git a/drivers/gpu/drm/i915/i915_request.h b/drivers/gpu/drm/i915/i915_request.h
index c0bd4cb8786a..43230037f469 100644
--- a/drivers/gpu/drm/i915/i915_request.h
+++ b/drivers/gpu/drm/i915/i915_request.h
@@ -137,6 +137,18 @@ enum {
* the GPU. Here we track such boost requests on a per-request basis.
*/
I915_FENCE_FLAG_BOOST,
+
+ /*
+ * I915_FENCE_FLAG_NOWAIT - avoid waits while constructing the request
+ *
+ * We may wish to construct a request from some contexts where
+ * we do not want to wait, and sometimes the client would prefer
+ * to have a nonblocking interface. We may have to wait in a few place
+ * during request construction (e.g. waiting for space in the
+ * ringbuffer), this flag allows us to opt out of those waits and
+ * return -EAGAIN instead.
+ */
+ I915_FENCE_FLAG_NOWAIT,
};
/**
@@ -305,9 +317,16 @@ static inline bool dma_fence_is_i915(const struct dma_fence *fence)
struct kmem_cache *i915_request_slab_cache(void);
struct i915_request * __must_check
-__i915_request_create(struct intel_context *ce, gfp_t gfp);
+__i915_request_create_locked(struct intel_context *ce,
+ unsigned long flags, gfp_t gfp);
struct i915_request * __must_check
-i915_request_create(struct intel_context *ce);
+__i915_request_create(struct intel_context *ce,
+ unsigned long flags, gfp_t gfp);
+static inline struct i915_request *
+i915_request_create(struct intel_context *ce)
+{
+ return __i915_request_create(ce, 0, GFP_KERNEL);
+}
void __i915_request_skip(struct i915_request *rq);
void i915_request_set_error_once(struct i915_request *rq, int error);
@@ -558,6 +577,11 @@ static inline void i915_request_mark_complete(struct i915_request *rq)
(u32 *)&rq->fence.seqno);
}
+static inline bool i915_request_nowait(const struct i915_request *rq)
+{
+ return test_bit(I915_FENCE_FLAG_NOWAIT, &rq->fence.flags);
+}
+
static inline bool i915_request_has_waitboost(const struct i915_request *rq)
{
return test_bit(I915_FENCE_FLAG_BOOST, &rq->fence.flags);
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915: Prevent waiting inside ring construction for critical sections
2021-02-03 12:47 [Intel-gfx] [PATCH] drm/i915: Prevent waiting inside ring construction for critical sections Chris Wilson
@ 2021-02-03 16:58 ` kernel test robot
2021-02-03 15:00 ` [Intel-gfx] [PATCH v3] " Chris Wilson
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-02-03 16:58 UTC (permalink / raw)
To: Chris Wilson, intel-gfx; +Cc: kbuild-all, Chris Wilson
[-- Attachment #1: Type: text/plain, Size: 6508 bytes --]
Hi Chris,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on drm-tip/drm-tip v5.11-rc6 next-20210125]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Prevent-waiting-inside-ring-construction-for-critical-sections/20210203-204914
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-rhel (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/7930da83ebb0a7bdfaba6f8f2fc96e3c2ec34a78
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Chris-Wilson/drm-i915-Prevent-waiting-inside-ring-construction-for-critical-sections/20210203-204914
git checkout 7930da83ebb0a7bdfaba6f8f2fc96e3c2ec34a78
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c: In function 'i915_gem_do_execbuffer':
>> drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:3298:10: error: 'struct drm_file' has no member named 'f_flags'
3298 | if (file->f_flags & O_NONBLOCK)
| ^~
--
drivers/gpu/drm/i915/i915_request.c: In function '__i915_request_create':
>> drivers/gpu/drm/i915/i915_request.c:854:7: error: 'flags' undeclared (first use in this function)
854 | if ((flags & __GFP_RECLAIM) == 0)
| ^~~~~
drivers/gpu/drm/i915/i915_request.c:854:7: note: each undeclared identifier is reported only once for each function it appears in
vim +3298 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
3240
3241 if (args->flags & I915_EXEC_FENCE_OUT) {
3242 out_fence_fd = get_unused_fd_flags(O_CLOEXEC);
3243 if (out_fence_fd < 0) {
3244 err = out_fence_fd;
3245 goto err_in_fence;
3246 }
3247 }
3248
3249 err = eb_create(&eb);
3250 if (err)
3251 goto err_out_fence;
3252
3253 GEM_BUG_ON(!eb.lut_size);
3254
3255 err = eb_select_context(&eb);
3256 if (unlikely(err))
3257 goto err_destroy;
3258
3259 err = eb_select_engine(&eb);
3260 if (unlikely(err))
3261 goto err_context;
3262
3263 err = eb_lookup_vmas(&eb);
3264 if (err) {
3265 eb_release_vmas(&eb, true);
3266 goto err_engine;
3267 }
3268
3269 i915_gem_ww_ctx_init(&eb.ww, true);
3270
3271 err = eb_relocate_parse(&eb);
3272 if (err) {
3273 /*
3274 * If the user expects the execobject.offset and
3275 * reloc.presumed_offset to be an exact match,
3276 * as for using NO_RELOC, then we cannot update
3277 * the execobject.offset until we have completed
3278 * relocation.
3279 */
3280 args->flags &= ~__EXEC_HAS_RELOC;
3281 goto err_vma;
3282 }
3283
3284 ww_acquire_done(&eb.ww.ctx);
3285
3286 batch = eb.batch->vma;
3287
3288 /* All GPU relocation batches must be submitted prior to the user rq */
3289 GEM_BUG_ON(eb.reloc_cache.rq);
3290
3291 /* Allocate a request for this batch buffer nice and early. */
3292 eb.request = i915_request_create(eb.context);
3293 if (IS_ERR(eb.request)) {
3294 err = PTR_ERR(eb.request);
3295 goto err_vma;
3296 }
3297
> 3298 if (file->f_flags & O_NONBLOCK)
3299 i915_request_set_nowait(eb.request);
3300
3301 if (in_fence) {
3302 if (args->flags & I915_EXEC_FENCE_SUBMIT)
3303 err = i915_request_await_execution(eb.request,
3304 in_fence,
3305 eb.engine->bond_execute);
3306 else
3307 err = i915_request_await_dma_fence(eb.request,
3308 in_fence);
3309 if (err < 0)
3310 goto err_request;
3311 }
3312
3313 if (eb.fences) {
3314 err = await_fence_array(&eb);
3315 if (err)
3316 goto err_request;
3317 }
3318
3319 if (out_fence_fd != -1) {
3320 out_fence = sync_file_create(&eb.request->fence);
3321 if (!out_fence) {
3322 err = -ENOMEM;
3323 goto err_request;
3324 }
3325 }
3326
3327 /*
3328 * Whilst this request exists, batch_obj will be on the
3329 * active_list, and so will hold the active reference. Only when this
3330 * request is retired will the the batch_obj be moved onto the
3331 * inactive_list and lose its active reference. Hence we do not need
3332 * to explicitly hold another reference here.
3333 */
3334 eb.request->batch = batch;
3335 if (eb.batch_pool)
3336 intel_gt_buffer_pool_mark_active(eb.batch_pool, eb.request);
3337
3338 trace_i915_request_queue(eb.request, eb.batch_flags);
3339 err = eb_submit(&eb, batch);
3340 err_request:
3341 i915_request_get(eb.request);
3342 err = eb_request_add(&eb, err);
3343
3344 if (eb.fences)
3345 signal_fence_array(&eb);
3346
3347 if (out_fence) {
3348 if (err == 0) {
3349 fd_install(out_fence_fd, out_fence->file);
3350 args->rsvd2 &= GENMASK_ULL(31, 0); /* keep in-fence */
3351 args->rsvd2 |= (u64)out_fence_fd << 32;
3352 out_fence_fd = -1;
3353 } else {
3354 fput(out_fence->file);
3355 }
3356 }
3357 i915_request_put(eb.request);
3358
3359 err_vma:
3360 eb_release_vmas(&eb, true);
3361 if (eb.trampoline)
3362 i915_vma_unpin(eb.trampoline);
3363 WARN_ON(err == -EDEADLK);
3364 i915_gem_ww_ctx_fini(&eb.ww);
3365
3366 if (eb.batch_pool)
3367 intel_gt_buffer_pool_put(eb.batch_pool);
3368 if (eb.reloc_pool)
3369 intel_gt_buffer_pool_put(eb.reloc_pool);
3370 if (eb.reloc_context)
3371 intel_context_put(eb.reloc_context);
3372 err_engine:
3373 eb_put_engine(&eb);
3374 err_context:
3375 i915_gem_context_put(eb.gem_context);
3376 err_destroy:
3377 eb_destroy(&eb);
3378 err_out_fence:
3379 if (out_fence_fd != -1)
3380 put_unused_fd(out_fence_fd);
3381 err_in_fence:
3382 dma_fence_put(in_fence);
3383 err_ext:
3384 put_fence_array(eb.fences, eb.num_fences);
3385 return err;
3386 }
3387
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 45943 bytes --]
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915: Prevent waiting inside ring construction for critical sections
@ 2021-02-03 16:58 ` kernel test robot
0 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-02-03 16:58 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 6703 bytes --]
Hi Chris,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on drm-tip/drm-tip v5.11-rc6 next-20210125]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Prevent-waiting-inside-ring-construction-for-critical-sections/20210203-204914
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-rhel (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/7930da83ebb0a7bdfaba6f8f2fc96e3c2ec34a78
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Chris-Wilson/drm-i915-Prevent-waiting-inside-ring-construction-for-critical-sections/20210203-204914
git checkout 7930da83ebb0a7bdfaba6f8f2fc96e3c2ec34a78
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c: In function 'i915_gem_do_execbuffer':
>> drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:3298:10: error: 'struct drm_file' has no member named 'f_flags'
3298 | if (file->f_flags & O_NONBLOCK)
| ^~
--
drivers/gpu/drm/i915/i915_request.c: In function '__i915_request_create':
>> drivers/gpu/drm/i915/i915_request.c:854:7: error: 'flags' undeclared (first use in this function)
854 | if ((flags & __GFP_RECLAIM) == 0)
| ^~~~~
drivers/gpu/drm/i915/i915_request.c:854:7: note: each undeclared identifier is reported only once for each function it appears in
vim +3298 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
3240
3241 if (args->flags & I915_EXEC_FENCE_OUT) {
3242 out_fence_fd = get_unused_fd_flags(O_CLOEXEC);
3243 if (out_fence_fd < 0) {
3244 err = out_fence_fd;
3245 goto err_in_fence;
3246 }
3247 }
3248
3249 err = eb_create(&eb);
3250 if (err)
3251 goto err_out_fence;
3252
3253 GEM_BUG_ON(!eb.lut_size);
3254
3255 err = eb_select_context(&eb);
3256 if (unlikely(err))
3257 goto err_destroy;
3258
3259 err = eb_select_engine(&eb);
3260 if (unlikely(err))
3261 goto err_context;
3262
3263 err = eb_lookup_vmas(&eb);
3264 if (err) {
3265 eb_release_vmas(&eb, true);
3266 goto err_engine;
3267 }
3268
3269 i915_gem_ww_ctx_init(&eb.ww, true);
3270
3271 err = eb_relocate_parse(&eb);
3272 if (err) {
3273 /*
3274 * If the user expects the execobject.offset and
3275 * reloc.presumed_offset to be an exact match,
3276 * as for using NO_RELOC, then we cannot update
3277 * the execobject.offset until we have completed
3278 * relocation.
3279 */
3280 args->flags &= ~__EXEC_HAS_RELOC;
3281 goto err_vma;
3282 }
3283
3284 ww_acquire_done(&eb.ww.ctx);
3285
3286 batch = eb.batch->vma;
3287
3288 /* All GPU relocation batches must be submitted prior to the user rq */
3289 GEM_BUG_ON(eb.reloc_cache.rq);
3290
3291 /* Allocate a request for this batch buffer nice and early. */
3292 eb.request = i915_request_create(eb.context);
3293 if (IS_ERR(eb.request)) {
3294 err = PTR_ERR(eb.request);
3295 goto err_vma;
3296 }
3297
> 3298 if (file->f_flags & O_NONBLOCK)
3299 i915_request_set_nowait(eb.request);
3300
3301 if (in_fence) {
3302 if (args->flags & I915_EXEC_FENCE_SUBMIT)
3303 err = i915_request_await_execution(eb.request,
3304 in_fence,
3305 eb.engine->bond_execute);
3306 else
3307 err = i915_request_await_dma_fence(eb.request,
3308 in_fence);
3309 if (err < 0)
3310 goto err_request;
3311 }
3312
3313 if (eb.fences) {
3314 err = await_fence_array(&eb);
3315 if (err)
3316 goto err_request;
3317 }
3318
3319 if (out_fence_fd != -1) {
3320 out_fence = sync_file_create(&eb.request->fence);
3321 if (!out_fence) {
3322 err = -ENOMEM;
3323 goto err_request;
3324 }
3325 }
3326
3327 /*
3328 * Whilst this request exists, batch_obj will be on the
3329 * active_list, and so will hold the active reference. Only when this
3330 * request is retired will the the batch_obj be moved onto the
3331 * inactive_list and lose its active reference. Hence we do not need
3332 * to explicitly hold another reference here.
3333 */
3334 eb.request->batch = batch;
3335 if (eb.batch_pool)
3336 intel_gt_buffer_pool_mark_active(eb.batch_pool, eb.request);
3337
3338 trace_i915_request_queue(eb.request, eb.batch_flags);
3339 err = eb_submit(&eb, batch);
3340 err_request:
3341 i915_request_get(eb.request);
3342 err = eb_request_add(&eb, err);
3343
3344 if (eb.fences)
3345 signal_fence_array(&eb);
3346
3347 if (out_fence) {
3348 if (err == 0) {
3349 fd_install(out_fence_fd, out_fence->file);
3350 args->rsvd2 &= GENMASK_ULL(31, 0); /* keep in-fence */
3351 args->rsvd2 |= (u64)out_fence_fd << 32;
3352 out_fence_fd = -1;
3353 } else {
3354 fput(out_fence->file);
3355 }
3356 }
3357 i915_request_put(eb.request);
3358
3359 err_vma:
3360 eb_release_vmas(&eb, true);
3361 if (eb.trampoline)
3362 i915_vma_unpin(eb.trampoline);
3363 WARN_ON(err == -EDEADLK);
3364 i915_gem_ww_ctx_fini(&eb.ww);
3365
3366 if (eb.batch_pool)
3367 intel_gt_buffer_pool_put(eb.batch_pool);
3368 if (eb.reloc_pool)
3369 intel_gt_buffer_pool_put(eb.reloc_pool);
3370 if (eb.reloc_context)
3371 intel_context_put(eb.reloc_context);
3372 err_engine:
3373 eb_put_engine(&eb);
3374 err_context:
3375 i915_gem_context_put(eb.gem_context);
3376 err_destroy:
3377 eb_destroy(&eb);
3378 err_out_fence:
3379 if (out_fence_fd != -1)
3380 put_unused_fd(out_fence_fd);
3381 err_in_fence:
3382 dma_fence_put(in_fence);
3383 err_ext:
3384 put_fence_array(eb.fences, eb.num_fences);
3385 return err;
3386 }
3387
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 45943 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Prevent waiting inside ring construction for critical sections (rev3)
2021-02-03 12:47 [Intel-gfx] [PATCH] drm/i915: Prevent waiting inside ring construction for critical sections Chris Wilson
` (2 preceding siblings ...)
2021-02-03 16:58 ` kernel test robot
@ 2021-02-03 17:24 ` Patchwork
2021-02-03 17:55 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2021-02-03 17:24 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Prevent waiting inside ring construction for critical sections (rev3)
URL : https://patchwork.freedesktop.org/series/86644/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
c2a787bb37c7 drm/i915: Prevent waiting inside ring construction for critical sections
-:30: ERROR:SPACING: spaces required around that '=' (ctx:VxW)
#30: FILE: drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:1263:
+ unsigned long flags= 0;
^
total: 1 errors, 0 warnings, 0 checks, 185 lines checked
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: Prevent waiting inside ring construction for critical sections (rev3)
2021-02-03 12:47 [Intel-gfx] [PATCH] drm/i915: Prevent waiting inside ring construction for critical sections Chris Wilson
` (3 preceding siblings ...)
2021-02-03 17:24 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Prevent waiting inside ring construction for critical sections (rev3) Patchwork
@ 2021-02-03 17:55 ` Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2021-02-03 17:55 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
[-- Attachment #1.1: Type: text/plain, Size: 19685 bytes --]
== Series Details ==
Series: drm/i915: Prevent waiting inside ring construction for critical sections (rev3)
URL : https://patchwork.freedesktop.org/series/86644/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_9725 -> Patchwork_19575
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_19575 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_19575, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_19575:
### IGT changes ###
#### Possible regressions ####
* igt@i915_selftest@live@gem_execbuf:
- fi-skl-6600u: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-skl-6600u/igt@i915_selftest@live@gem_execbuf.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-skl-6600u/igt@i915_selftest@live@gem_execbuf.html
- fi-cfl-8109u: [PASS][3] -> [INCOMPLETE][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-cfl-8109u/igt@i915_selftest@live@gem_execbuf.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-cfl-8109u/igt@i915_selftest@live@gem_execbuf.html
- fi-kbl-7500u: [PASS][5] -> [INCOMPLETE][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-kbl-7500u/igt@i915_selftest@live@gem_execbuf.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-kbl-7500u/igt@i915_selftest@live@gem_execbuf.html
- fi-kbl-guc: [PASS][7] -> [INCOMPLETE][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-kbl-guc/igt@i915_selftest@live@gem_execbuf.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-kbl-guc/igt@i915_selftest@live@gem_execbuf.html
- fi-bsw-nick: [PASS][9] -> [INCOMPLETE][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-bsw-nick/igt@i915_selftest@live@gem_execbuf.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-bsw-nick/igt@i915_selftest@live@gem_execbuf.html
- fi-icl-y: [PASS][11] -> [INCOMPLETE][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-icl-y/igt@i915_selftest@live@gem_execbuf.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-icl-y/igt@i915_selftest@live@gem_execbuf.html
- fi-kbl-r: [PASS][13] -> [INCOMPLETE][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-kbl-r/igt@i915_selftest@live@gem_execbuf.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-kbl-r/igt@i915_selftest@live@gem_execbuf.html
- fi-glk-dsi: [PASS][15] -> [INCOMPLETE][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-glk-dsi/igt@i915_selftest@live@gem_execbuf.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-glk-dsi/igt@i915_selftest@live@gem_execbuf.html
- fi-kbl-x1275: [PASS][17] -> [INCOMPLETE][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-kbl-x1275/igt@i915_selftest@live@gem_execbuf.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-kbl-x1275/igt@i915_selftest@live@gem_execbuf.html
- fi-bsw-kefka: [PASS][19] -> [INCOMPLETE][20]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-bsw-kefka/igt@i915_selftest@live@gem_execbuf.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-bsw-kefka/igt@i915_selftest@live@gem_execbuf.html
- fi-cml-s: [PASS][21] -> [INCOMPLETE][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-cml-s/igt@i915_selftest@live@gem_execbuf.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-cml-s/igt@i915_selftest@live@gem_execbuf.html
- fi-tgl-y: [PASS][23] -> [INCOMPLETE][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-tgl-y/igt@i915_selftest@live@gem_execbuf.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-tgl-y/igt@i915_selftest@live@gem_execbuf.html
- fi-cfl-guc: [PASS][25] -> [INCOMPLETE][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-cfl-guc/igt@i915_selftest@live@gem_execbuf.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-cfl-guc/igt@i915_selftest@live@gem_execbuf.html
- fi-kbl-soraka: [PASS][27] -> [INCOMPLETE][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-kbl-soraka/igt@i915_selftest@live@gem_execbuf.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-kbl-soraka/igt@i915_selftest@live@gem_execbuf.html
- fi-snb-2600: [PASS][29] -> [INCOMPLETE][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-snb-2600/igt@i915_selftest@live@gem_execbuf.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-snb-2600/igt@i915_selftest@live@gem_execbuf.html
- fi-bsw-n3050: [PASS][31] -> [INCOMPLETE][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-bsw-n3050/igt@i915_selftest@live@gem_execbuf.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-bsw-n3050/igt@i915_selftest@live@gem_execbuf.html
- fi-ivb-3770: [PASS][33] -> [INCOMPLETE][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-ivb-3770/igt@i915_selftest@live@gem_execbuf.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-ivb-3770/igt@i915_selftest@live@gem_execbuf.html
- fi-tgl-u2: [PASS][35] -> [INCOMPLETE][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-tgl-u2/igt@i915_selftest@live@gem_execbuf.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-tgl-u2/igt@i915_selftest@live@gem_execbuf.html
- fi-ilk-650: [PASS][37] -> [INCOMPLETE][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-ilk-650/igt@i915_selftest@live@gem_execbuf.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-ilk-650/igt@i915_selftest@live@gem_execbuf.html
- fi-elk-e7500: [PASS][39] -> [INCOMPLETE][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-elk-e7500/igt@i915_selftest@live@gem_execbuf.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-elk-e7500/igt@i915_selftest@live@gem_execbuf.html
- fi-cml-u2: [PASS][41] -> [INCOMPLETE][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-cml-u2/igt@i915_selftest@live@gem_execbuf.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-cml-u2/igt@i915_selftest@live@gem_execbuf.html
- fi-cfl-8700k: [PASS][43] -> [INCOMPLETE][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-cfl-8700k/igt@i915_selftest@live@gem_execbuf.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-cfl-8700k/igt@i915_selftest@live@gem_execbuf.html
- fi-bxt-dsi: [PASS][45] -> [INCOMPLETE][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-bxt-dsi/igt@i915_selftest@live@gem_execbuf.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-bxt-dsi/igt@i915_selftest@live@gem_execbuf.html
- fi-byt-j1900: [PASS][47] -> [INCOMPLETE][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-byt-j1900/igt@i915_selftest@live@gem_execbuf.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-byt-j1900/igt@i915_selftest@live@gem_execbuf.html
- fi-hsw-4770: [PASS][49] -> [INCOMPLETE][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-hsw-4770/igt@i915_selftest@live@gem_execbuf.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-hsw-4770/igt@i915_selftest@live@gem_execbuf.html
- fi-skl-6700k2: [PASS][51] -> [INCOMPLETE][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-skl-6700k2/igt@i915_selftest@live@gem_execbuf.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-skl-6700k2/igt@i915_selftest@live@gem_execbuf.html
- fi-icl-u2: [PASS][53] -> [INCOMPLETE][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-icl-u2/igt@i915_selftest@live@gem_execbuf.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-icl-u2/igt@i915_selftest@live@gem_execbuf.html
- fi-snb-2520m: [PASS][55] -> [INCOMPLETE][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-snb-2520m/igt@i915_selftest@live@gem_execbuf.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-snb-2520m/igt@i915_selftest@live@gem_execbuf.html
- fi-skl-guc: [PASS][57] -> [INCOMPLETE][58]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-skl-guc/igt@i915_selftest@live@gem_execbuf.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-skl-guc/igt@i915_selftest@live@gem_execbuf.html
- fi-bdw-5557u: [PASS][59] -> [INCOMPLETE][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-bdw-5557u/igt@i915_selftest@live@gem_execbuf.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-bdw-5557u/igt@i915_selftest@live@gem_execbuf.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@i915_selftest@live@gem_execbuf:
- {fi-rkl-11500t}: [PASS][61] -> [INCOMPLETE][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-rkl-11500t/igt@i915_selftest@live@gem_execbuf.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-rkl-11500t/igt@i915_selftest@live@gem_execbuf.html
- {fi-ehl-1}: [PASS][63] -> [INCOMPLETE][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-ehl-1/igt@i915_selftest@live@gem_execbuf.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-ehl-1/igt@i915_selftest@live@gem_execbuf.html
- {fi-tgl-dsi}: [PASS][65] -> [INCOMPLETE][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-tgl-dsi/igt@i915_selftest@live@gem_execbuf.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-tgl-dsi/igt@i915_selftest@live@gem_execbuf.html
- {fi-hsw-gt1}: [PASS][67] -> [INCOMPLETE][68]
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-hsw-gt1/igt@i915_selftest@live@gem_execbuf.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-hsw-gt1/igt@i915_selftest@live@gem_execbuf.html
* igt@runner@aborted:
- {fi-rkl-11500t}: NOTRUN -> [FAIL][69]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-rkl-11500t/igt@runner@aborted.html
Known issues
------------
Here are the changes found in Patchwork_19575 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@debugfs_test@read_all_entries:
- fi-tgl-y: [PASS][70] -> [DMESG-WARN][71] ([i915#402]) +2 similar issues
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-tgl-y/igt@debugfs_test@read_all_entries.html
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-tgl-y/igt@debugfs_test@read_all_entries.html
* igt@gem_exec_suspend@basic-s3:
- fi-tgl-y: [PASS][72] -> [DMESG-WARN][73] ([i915#2411] / [i915#402])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-tgl-y/igt@gem_exec_suspend@basic-s3.html
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-tgl-y/igt@gem_exec_suspend@basic-s3.html
* igt@i915_selftest@live@gem_execbuf:
- fi-pnv-d510: [PASS][74] -> [INCOMPLETE][75] ([i915#299])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-pnv-d510/igt@i915_selftest@live@gem_execbuf.html
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-pnv-d510/igt@i915_selftest@live@gem_execbuf.html
* igt@runner@aborted:
- fi-ilk-650: NOTRUN -> [FAIL][76] ([i915#2426])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-ilk-650/igt@runner@aborted.html
- fi-pnv-d510: NOTRUN -> [FAIL][77] ([i915#2403] / [i915#2505])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-pnv-d510/igt@runner@aborted.html
- fi-kbl-x1275: NOTRUN -> [FAIL][78] ([i915#1436] / [i915#2426])
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-kbl-x1275/igt@runner@aborted.html
- fi-bsw-kefka: NOTRUN -> [FAIL][79] ([i915#1436])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-bsw-kefka/igt@runner@aborted.html
- fi-cfl-8700k: NOTRUN -> [FAIL][80] ([i915#2426])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-cfl-8700k/igt@runner@aborted.html
- fi-tgl-y: NOTRUN -> [FAIL][81] ([i915#2966])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-tgl-y/igt@runner@aborted.html
- fi-skl-6600u: NOTRUN -> [FAIL][82] ([i915#1436] / [i915#2426])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-skl-6600u/igt@runner@aborted.html
- fi-cfl-8109u: NOTRUN -> [FAIL][83] ([i915#2426])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-cfl-8109u/igt@runner@aborted.html
- fi-icl-u2: NOTRUN -> [FAIL][84] ([i915#2426] / [i915#2724])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-icl-u2/igt@runner@aborted.html
- fi-glk-dsi: NOTRUN -> [FAIL][85] ([i915#2426] / [k.org#202321])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-glk-dsi/igt@runner@aborted.html
- fi-bsw-nick: NOTRUN -> [FAIL][86] ([i915#1436])
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-bsw-nick/igt@runner@aborted.html
- fi-snb-2520m: NOTRUN -> [FAIL][87] ([i915#2426])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-snb-2520m/igt@runner@aborted.html
- fi-kbl-r: NOTRUN -> [FAIL][88] ([i915#1436] / [i915#2426])
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-kbl-r/igt@runner@aborted.html
- fi-bdw-5557u: NOTRUN -> [FAIL][89] ([i915#2369] / [i915#2426])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-bdw-5557u/igt@runner@aborted.html
- fi-kbl-soraka: NOTRUN -> [FAIL][90] ([i915#1436] / [i915#2426])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-kbl-soraka/igt@runner@aborted.html
- fi-hsw-4770: NOTRUN -> [FAIL][91] ([i915#1436] / [i915#2505])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-hsw-4770/igt@runner@aborted.html
- fi-kbl-7500u: NOTRUN -> [FAIL][92] ([i915#1436] / [i915#2426])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-kbl-7500u/igt@runner@aborted.html
- fi-kbl-guc: NOTRUN -> [FAIL][93] ([i915#1436] / [i915#2426])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-kbl-guc/igt@runner@aborted.html
- fi-snb-2600: NOTRUN -> [FAIL][94] ([i915#2426])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-snb-2600/igt@runner@aborted.html
- fi-cml-u2: NOTRUN -> [FAIL][95] ([i915#2082] / [i915#2426])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-cml-u2/igt@runner@aborted.html
- fi-ivb-3770: NOTRUN -> [FAIL][96] ([i915#2426])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-ivb-3770/igt@runner@aborted.html
- fi-bxt-dsi: NOTRUN -> [FAIL][97] ([i915#2426])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-bxt-dsi/igt@runner@aborted.html
- fi-byt-j1900: NOTRUN -> [FAIL][98] ([i915#2426] / [i915#2505])
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-byt-j1900/igt@runner@aborted.html
- fi-elk-e7500: NOTRUN -> [FAIL][99] ([i915#2426])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-elk-e7500/igt@runner@aborted.html
- fi-cml-s: NOTRUN -> [FAIL][100] ([i915#2082] / [i915#2426])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-cml-s/igt@runner@aborted.html
- fi-cfl-guc: NOTRUN -> [FAIL][101] ([i915#2426])
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-cfl-guc/igt@runner@aborted.html
- fi-icl-y: NOTRUN -> [FAIL][102] ([i915#2724])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-icl-y/igt@runner@aborted.html
- fi-skl-guc: NOTRUN -> [FAIL][103] ([i915#1436] / [i915#2426])
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-skl-guc/igt@runner@aborted.html
- fi-skl-6700k2: NOTRUN -> [FAIL][104] ([i915#1436] / [i915#2426])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-skl-6700k2/igt@runner@aborted.html
- fi-tgl-u2: NOTRUN -> [FAIL][105] ([i915#2966])
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-tgl-u2/igt@runner@aborted.html
#### Possible fixes ####
* igt@gem_ringfill@basic-all:
- fi-tgl-y: [DMESG-WARN][106] ([i915#402]) -> [PASS][107] +2 similar issues
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9725/fi-tgl-y/igt@gem_ringfill@basic-all.html
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/fi-tgl-y/igt@gem_ringfill@basic-all.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#2082]: https://gitlab.freedesktop.org/drm/intel/issues/2082
[i915#2089]: https://gitlab.freedesktop.org/drm/intel/issues/2089
[i915#2369]: https://gitlab.freedesktop.org/drm/intel/issues/2369
[i915#2403]: https://gitlab.freedesktop.org/drm/intel/issues/2403
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
[i915#2505]: https://gitlab.freedesktop.org/drm/intel/issues/2505
[i915#2724]: https://gitlab.freedesktop.org/drm/intel/issues/2724
[i915#2932]: https://gitlab.freedesktop.org/drm/intel/issues/2932
[i915#2966]: https://gitlab.freedesktop.org/drm/intel/issues/2966
[i915#299]: https://gitlab.freedesktop.org/drm/intel/issues/299
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
[k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321
Participating hosts (45 -> 39)
------------------------------
Missing (6): fi-jsl-1 fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 fi-bdw-samus
Build changes
-------------
* Linux: CI_DRM_9725 -> Patchwork_19575
CI-20190529: 20190529
CI_DRM_9725: 4f97ebbb265a06654e2cc76a0e0115cc00bb6c91 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5989: 57a96840fd5aa7ec48c2f84b30e0420f84ec7386 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_19575: c2a787bb37c7485ce5ac20002b5fa6bfdf1efd88 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
c2a787bb37c7 drm/i915: Prevent waiting inside ring construction for critical sections
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19575/index.html
[-- Attachment #1.2: Type: text/html, Size: 23735 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-02-03 17:55 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-03 12:47 [Intel-gfx] [PATCH] drm/i915: Prevent waiting inside ring construction for critical sections Chris Wilson
2021-02-03 14:55 ` [Intel-gfx] [PATCH v2] " Chris Wilson
2021-02-03 15:00 ` [Intel-gfx] [PATCH v3] " Chris Wilson
2021-02-03 16:58 ` [Intel-gfx] [PATCH] " kernel test robot
2021-02-03 16:58 ` kernel test robot
2021-02-03 17:24 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Prevent waiting inside ring construction for critical sections (rev3) Patchwork
2021-02-03 17:55 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " 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.