* [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory
@ 2023-07-20 9:35 Janusz Krzysztofik
2023-07-20 15:14 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Fix premature release of request's reusable memory (rev3) Patchwork
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Janusz Krzysztofik @ 2023-07-20 9:35 UTC (permalink / raw)
To: intel-gfx
Cc: Chris Wilson, dri-devel, Andrzej Hajda, Daniel Vetter,
Rodrigo Vivi, David Airlie, Nirmoy Das
Infinite waits for completion of GPU activity have been observed in CI,
mostly inside __i915_active_wait(), triggered by igt@gem_barrier_race or
igt@perf@stress-open-close. Root cause analysis, based of ftrace dumps
generated with a lot of extra trace_printk() calls added to the code,
revealed loops of request dependencies being accidentally built,
preventing the requests from being processed, each waiting for completion
of another one's activity.
After we substitute a new request for a last active one tracked on a
timeline, we set up a dependency of our new request to wait on completion
of current activity of that previous one. While doing that, we must take
care of keeping the old request still in memory until we use its
attributes for setting up that await dependency, or we can happen to set
up the await dependency on an unrelated request that already reuses the
memory previously allocated to the old one, already released. Combined
with perf adding consecutive kernel context remote requests to different
user context timelines, unresolvable loops of await dependencies can be
built, leading do infinite waits.
We obtain a pointer to the previous request to wait upon when we
substitute it with a pointer to our new request in an active tracker,
e.g. in intel_timeline.last_request. In some processing paths we protect
that old request from being freed before we use it by getting a reference
to it under RCU protection, but in others, e.g. __i915_request_commit()
-> __i915_request_add_to_timeline() -> __i915_request_ensure_ordering(),
we don't. But anyway, since the requests' memory is SLAB_FAILSAFE_BY_RCU,
that RCU protection is not sufficient against reuse of memory.
We could protect i915_request's memory from being prematurely reused by
calling its release function via call_rcu() and using rcu_read_lock()
consequently, as proposed in v1. However, that approach leads to
significant (up to 10 times) increase of SLAB utilization by i915_request
SLAB cache. Another potential approach is to take a reference to the
previous active fence.
When updating an active fence tracker, we first lock the new fence,
substitute a pointer of the current active fence with the new one, then we
lock the substituted fence. With this approach, there is a time window
after the substitution and before the lock when the request can be
concurrently released by an interrupt handler and its memory reused, then
we may happen to lock and return a new, unrelated request.
Always get a reference to the current active fence first, before
replacing it with a new one. Having it protected from premature release
and reuse, lock it and then replace with the new one but only if not
yet signalled via a potential concurrent interrupt nor replaced with
another one by a potential concurrent thread, otherwise retry, starting
from getting a reference to the new current one. Adjust users to not
get a reference to the previous active fence themselves and always put the
reference got by __i915_active_fence_set() when no longer needed.
v3: Fix lockdep splat reports and other issues caused by incorrect use of
try_cmpxchg() (use (cmpxchg() != prev) instead)
v2: Protect request's memory by getting a reference to it in favor of
delegating its release to call_rcu() (Chris)
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/8211
Fixes: df9f85d8582e ("drm/i915: Serialise i915_active_fence_set() with itself")
Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Cc: <stable@vger.kernel.org> # v5.6+
---
drivers/gpu/drm/i915/i915_active.c | 99 ++++++++++++++++++++---------
drivers/gpu/drm/i915/i915_request.c | 11 ++++
2 files changed, 81 insertions(+), 29 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_active.c b/drivers/gpu/drm/i915/i915_active.c
index 8ef93889061a6..5ec293011d990 100644
--- a/drivers/gpu/drm/i915/i915_active.c
+++ b/drivers/gpu/drm/i915/i915_active.c
@@ -449,8 +449,11 @@ int i915_active_add_request(struct i915_active *ref, struct i915_request *rq)
}
} while (unlikely(is_barrier(active)));
- if (!__i915_active_fence_set(active, fence))
+ fence = __i915_active_fence_set(active, fence);
+ if (!fence)
__i915_active_acquire(ref);
+ else
+ dma_fence_put(fence);
out:
i915_active_release(ref);
@@ -469,13 +472,9 @@ __i915_active_set_fence(struct i915_active *ref,
return NULL;
}
- rcu_read_lock();
prev = __i915_active_fence_set(active, fence);
- if (prev)
- prev = dma_fence_get_rcu(prev);
- else
+ if (!prev)
__i915_active_acquire(ref);
- rcu_read_unlock();
return prev;
}
@@ -1019,10 +1018,11 @@ void i915_request_add_active_barriers(struct i915_request *rq)
*
* Records the new @fence as the last active fence along its timeline in
* this active tracker, moving the tracking callbacks from the previous
- * fence onto this one. Returns the previous fence (if not already completed),
- * which the caller must ensure is executed before the new fence. To ensure
- * that the order of fences within the timeline of the i915_active_fence is
- * understood, it should be locked by the caller.
+ * fence onto this one. Gets and returns a reference to the previous fence
+ * (if not already completed), which the caller must put after making sure
+ * that it is executed before the new fence. To ensure that the order of
+ * fences within the timeline of the i915_active_fence is understood, it
+ * should be locked by the caller.
*/
struct dma_fence *
__i915_active_fence_set(struct i915_active_fence *active,
@@ -1031,7 +1031,23 @@ __i915_active_fence_set(struct i915_active_fence *active,
struct dma_fence *prev;
unsigned long flags;
- if (fence == rcu_access_pointer(active->fence))
+ /*
+ * In case of fences embedded in i915_requests, their memory is
+ * SLAB_FAILSAFE_BY_RCU, then it can be reused right after release
+ * by new requests. Then, there is a risk of passing back a pointer
+ * to a new, completely unrelated fence that reuses the same memory
+ * while tracked under a different active tracker. Combined with i915
+ * perf open/close operations that build await dependencies between
+ * engine kernel context requests and user requests from different
+ * timelines, this can lead to dependency loops and infinite waits.
+ *
+ * As a countermeasure, we try to get a reference to the active->fence
+ * first, so if we succeed and pass it back to our user then it is not
+ * released and potentially reused by an unrelated request before the
+ * user has a chance to set up an await dependency on it.
+ */
+ prev = i915_active_fence_get(active);
+ if (fence == prev)
return fence;
GEM_BUG_ON(test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags));
@@ -1040,27 +1056,56 @@ __i915_active_fence_set(struct i915_active_fence *active,
* Consider that we have two threads arriving (A and B), with
* C already resident as the active->fence.
*
- * A does the xchg first, and so it sees C or NULL depending
- * on the timing of the interrupt handler. If it is NULL, the
- * previous fence must have been signaled and we know that
- * we are first on the timeline. If it is still present,
- * we acquire the lock on that fence and serialise with the interrupt
- * handler, in the process removing it from any future interrupt
- * callback. A will then wait on C before executing (if present).
- *
- * As B is second, it sees A as the previous fence and so waits for
- * it to complete its transition and takes over the occupancy for
- * itself -- remembering that it needs to wait on A before executing.
+ * Both A and B have got a reference to C or NULL, depending on the
+ * timing of the interrupt handler. Let's assume that if A has got C
+ * then it has locked C first (before B).
*
* Note the strong ordering of the timeline also provides consistent
* nesting rules for the fence->lock; the inner lock is always the
* older lock.
*/
spin_lock_irqsave(fence->lock, flags);
- prev = xchg(__active_fence_slot(active), fence);
- if (prev) {
- GEM_BUG_ON(prev == fence);
+ if (prev)
spin_lock_nested(prev->lock, SINGLE_DEPTH_NESTING);
+
+ /*
+ * A does the cmpxchg first, and so it sees C or NULL, as before, or
+ * something else, depending on the timing of other threads and/or
+ * interrupt handler. If not the same as before then A unlocks C if
+ * applicable and retries, starting from an attempt to get a new
+ * active->fence. Meanwhile, B follows the same path as A.
+ * Once A succeeds with cmpxch, B fails again, retires, gets A from
+ * active->fence, locks it as soon as A completes, and possibly
+ * succeeds with cmpxchg.
+ */
+ while (cmpxchg(__active_fence_slot(active), prev, fence) != prev) {
+ if (prev) {
+ spin_unlock(prev->lock);
+ dma_fence_put(prev);
+ }
+ spin_unlock_irqrestore(fence->lock, flags);
+
+ prev = i915_active_fence_get(active);
+ GEM_BUG_ON(prev == fence);
+
+ spin_lock_irqsave(fence->lock, flags);
+ if (prev)
+ spin_lock_nested(prev->lock, SINGLE_DEPTH_NESTING);
+ }
+
+ /*
+ * If prev is NULL then the previous fence must have been signaled
+ * and we know that we are first on the timeline. If it is still
+ * present then, having the lock on that fence already acquired, we
+ * serialise with the interrupt handler, in the process of removing it
+ * from any future interrupt callback. A will then wait on C before
+ * executing (if present).
+ *
+ * As B is second, it sees A as the previous fence and so waits for
+ * it to complete its transition and takes over the occupancy for
+ * itself -- remembering that it needs to wait on A before executing.
+ */
+ if (prev) {
__list_del_entry(&active->cb.node);
spin_unlock(prev->lock); /* serialise with prev->cb_list */
}
@@ -1077,11 +1122,7 @@ int i915_active_fence_set(struct i915_active_fence *active,
int err = 0;
/* Must maintain timeline ordering wrt previous active requests */
- rcu_read_lock();
fence = __i915_active_fence_set(active, &rq->fence);
- if (fence) /* but the previous fence may not belong to that timeline! */
- fence = dma_fence_get_rcu(fence);
- rcu_read_unlock();
if (fence) {
err = i915_request_await_dma_fence(rq, fence);
dma_fence_put(fence);
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index 894068bb37b6f..833b73edefdbb 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -1661,6 +1661,11 @@ __i915_request_ensure_parallel_ordering(struct i915_request *rq,
request_to_parent(rq)->parallel.last_rq = i915_request_get(rq);
+ /*
+ * Users have to put a reference potentially got by
+ * __i915_active_fence_set() to the returned request
+ * when no longer needed
+ */
return to_request(__i915_active_fence_set(&timeline->last_request,
&rq->fence));
}
@@ -1707,6 +1712,10 @@ __i915_request_ensure_ordering(struct i915_request *rq,
0);
}
+ /*
+ * Users have to put the reference to prev potentially got
+ * by __i915_active_fence_set() when no longer needed
+ */
return prev;
}
@@ -1760,6 +1769,8 @@ __i915_request_add_to_timeline(struct i915_request *rq)
prev = __i915_request_ensure_ordering(rq, timeline);
else
prev = __i915_request_ensure_parallel_ordering(rq, timeline);
+ if (prev)
+ i915_request_put(prev);
/*
* Make sure that no request gazumped us - if it was allocated after
--
2.41.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Fix premature release of request's reusable memory (rev3)
2023-07-20 9:35 [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory Janusz Krzysztofik
@ 2023-07-20 15:14 ` Patchwork
2023-07-20 15:14 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-07-20 15:14 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Fix premature release of request's reusable memory (rev3)
URL : https://patchwork.freedesktop.org/series/120170/
State : warning
== Summary ==
Error: dim checkpatch failed
9d8a849ef3e3 drm/i915: Fix premature release of request's reusable memory
-:189: WARNING:AVOID_BUG: Do not crash the kernel unless it is absolutely unavoidable--use WARN_ON_ONCE() plus recovery code (if feasible) instead of BUG() or variants
#189: FILE: drivers/gpu/drm/i915/i915_active.c:1089:
+ GEM_BUG_ON(prev == fence);
total: 0 errors, 1 warnings, 0 checks, 175 lines checked
^ permalink raw reply [flat|nested] 7+ messages in thread* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Fix premature release of request's reusable memory (rev3)
2023-07-20 9:35 [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory Janusz Krzysztofik
2023-07-20 15:14 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Fix premature release of request's reusable memory (rev3) Patchwork
@ 2023-07-20 15:14 ` Patchwork
2023-07-20 15:27 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-07-20 15:14 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Fix premature release of request's reusable memory (rev3)
URL : https://patchwork.freedesktop.org/series/120170/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
+drivers/gpu/drm/i915/i915_active.c:1081:9: warning: context imbalance in '__i915_active_fence_set' - different lock contexts for basic block
^ permalink raw reply [flat|nested] 7+ messages in thread* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Fix premature release of request's reusable memory (rev3)
2023-07-20 9:35 [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory Janusz Krzysztofik
2023-07-20 15:14 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Fix premature release of request's reusable memory (rev3) Patchwork
2023-07-20 15:14 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
@ 2023-07-20 15:27 ` Patchwork
2023-07-20 21:22 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-07-20 15:27 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 9467 bytes --]
== Series Details ==
Series: drm/i915: Fix premature release of request's reusable memory (rev3)
URL : https://patchwork.freedesktop.org/series/120170/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_13399 -> Patchwork_120170v3
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/index.html
Participating hosts (43 -> 42)
------------------------------
Missing (1): fi-kbl-soraka
Known issues
------------
Here are the changes found in Patchwork_120170v3 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@debugfs_test@read_all_entries:
- bat-mtlp-6: [PASS][1] -> [DMESG-WARN][2] ([i915#8937])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/bat-mtlp-6/igt@debugfs_test@read_all_entries.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-mtlp-6/igt@debugfs_test@read_all_entries.html
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-skl-guc: [PASS][3] -> [FAIL][4] ([i915#7940])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/fi-skl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/fi-skl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_pm_rpm@basic-rte:
- fi-kbl-7567u: [PASS][5] -> [FAIL][6] ([i915#7940])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/fi-kbl-7567u/igt@i915_pm_rpm@basic-rte.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/fi-kbl-7567u/igt@i915_pm_rpm@basic-rte.html
* igt@i915_pm_rpm@module-reload:
- fi-tgl-1115g4: [PASS][7] -> [FAIL][8] ([i915#7940])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/fi-tgl-1115g4/igt@i915_pm_rpm@module-reload.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/fi-tgl-1115g4/igt@i915_pm_rpm@module-reload.html
- fi-cfl-8700k: [PASS][9] -> [FAIL][10] ([i915#7940])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/fi-cfl-8700k/igt@i915_pm_rpm@module-reload.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/fi-cfl-8700k/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live@guc_multi_lrc:
- bat-mtlp-8: NOTRUN -> [DMESG-WARN][11] ([i915#8937]) +23 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-mtlp-8/igt@i915_selftest@live@guc_multi_lrc.html
* igt@i915_selftest@live@hangcheck:
- bat-dg2-11: [PASS][12] -> [INCOMPLETE][13] ([i915#7913])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/bat-dg2-11/igt@i915_selftest@live@hangcheck.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-dg2-11/igt@i915_selftest@live@hangcheck.html
* igt@i915_selftest@live@migrate:
- bat-mtlp-8: NOTRUN -> [DMESG-WARN][14] ([i915#7699] / [i915#8504] / [i915#8937])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-mtlp-8/igt@i915_selftest@live@migrate.html
* igt@i915_selftest@live@slpc:
- bat-mtlp-8: NOTRUN -> [DMESG-WARN][15] ([i915#6367] / [i915#8937])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-mtlp-8/igt@i915_selftest@live@slpc.html
- bat-rpls-1: NOTRUN -> [DMESG-WARN][16] ([i915#6367])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-rpls-1/igt@i915_selftest@live@slpc.html
* igt@i915_suspend@basic-s3-without-i915:
- bat-mtlp-8: NOTRUN -> [SKIP][17] ([i915#6645])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-mtlp-8/igt@i915_suspend@basic-s3-without-i915.html
- bat-rpls-1: NOTRUN -> [ABORT][18] ([i915#6687] / [i915#7978] / [i915#8668])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-rpls-1/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- bat-mtlp-8: NOTRUN -> [SKIP][19] ([i915#7828])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-mtlp-8/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
- bat-dg2-11: NOTRUN -> [SKIP][20] ([i915#1845] / [i915#5354]) +3 similar issues
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
#### Possible fixes ####
* igt@core_auth@basic-auth:
- bat-mtlp-6: [DMESG-WARN][21] ([i915#8937]) -> [PASS][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/bat-mtlp-6/igt@core_auth@basic-auth.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-mtlp-6/igt@core_auth@basic-auth.html
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-cfl-8700k: [FAIL][23] ([i915#7940]) -> [PASS][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/fi-cfl-8700k/igt@i915_pm_rpm@basic-pci-d3-state.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/fi-cfl-8700k/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_selftest@live@reset:
- bat-rpls-1: [ABORT][25] ([i915#4983] / [i915#7461] / [i915#8347] / [i915#8384]) -> [PASS][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/bat-rpls-1/igt@i915_selftest@live@reset.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-rpls-1/igt@i915_selftest@live@reset.html
#### Warnings ####
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-kbl-guc: [SKIP][27] ([fdo#109271]) -> [FAIL][28] ([i915#7940])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/fi-kbl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/fi-kbl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_pm_rpm@basic-rte:
- fi-kbl-guc: [FAIL][29] ([i915#7940]) -> [FAIL][30] ([i915#8843])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html
* igt@i915_selftest@live@gt_tlb:
- bat-mtlp-8: [DMESG-FAIL][31] -> [DMESG-WARN][32] ([i915#8937])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/bat-mtlp-8/igt@i915_selftest@live@gt_tlb.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-mtlp-8/igt@i915_selftest@live@gt_tlb.html
* igt@i915_selftest@live@requests:
- bat-mtlp-8: [ABORT][33] ([i915#7982]) -> [DMESG-WARN][34] ([i915#8937])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/bat-mtlp-8/igt@i915_selftest@live@requests.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-mtlp-8/igt@i915_selftest@live@requests.html
* igt@kms_psr@primary_page_flip:
- bat-rplp-1: [ABORT][35] ([i915#8860]) -> [ABORT][36] ([i915#8442] / [i915#8668] / [i915#8860])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/bat-rplp-1/igt@kms_psr@primary_page_flip.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/bat-rplp-1/igt@kms_psr@primary_page_flip.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
[i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
[i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
[i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7940]: https://gitlab.freedesktop.org/drm/intel/issues/7940
[i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978
[i915#7982]: https://gitlab.freedesktop.org/drm/intel/issues/7982
[i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347
[i915#8384]: https://gitlab.freedesktop.org/drm/intel/issues/8384
[i915#8442]: https://gitlab.freedesktop.org/drm/intel/issues/8442
[i915#8504]: https://gitlab.freedesktop.org/drm/intel/issues/8504
[i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
[i915#8843]: https://gitlab.freedesktop.org/drm/intel/issues/8843
[i915#8860]: https://gitlab.freedesktop.org/drm/intel/issues/8860
[i915#8937]: https://gitlab.freedesktop.org/drm/intel/issues/8937
Build changes
-------------
* Linux: CI_DRM_13399 -> Patchwork_120170v3
CI-20190529: 20190529
CI_DRM_13399: fcafac400c8ed8c9fe9419e94a6cd2dc3bc87da1 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7396: 8e84faf33c2cf3482c7dff814d256089bc03db5d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_120170v3: fcafac400c8ed8c9fe9419e94a6cd2dc3bc87da1 @ git://anongit.freedesktop.org/gfx-ci/linux
### Linux commits
f69cd5471aeb drm/i915: Fix premature release of request's reusable memory
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/index.html
[-- Attachment #2: Type: text/html, Size: 11590 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Fix premature release of request's reusable memory (rev3)
2023-07-20 9:35 [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory Janusz Krzysztofik
` (2 preceding siblings ...)
2023-07-20 15:27 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2023-07-20 21:22 ` Patchwork
2023-07-28 13:30 ` [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory Andi Shyti
2023-07-31 10:31 ` Andi Shyti
5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-07-20 21:22 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 37597 bytes --]
== Series Details ==
Series: drm/i915: Fix premature release of request's reusable memory (rev3)
URL : https://patchwork.freedesktop.org/series/120170/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_13399_full -> Patchwork_120170v3_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in Patchwork_120170v3_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@drm_fdinfo@all-busy-check-all:
- shard-dg2: NOTRUN -> [SKIP][1] ([i915#8414])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@drm_fdinfo@all-busy-check-all.html
* igt@gem_busy@semaphore:
- shard-dg2: NOTRUN -> [SKIP][2] ([i915#3936])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_busy@semaphore.html
* igt@gem_ctx_persistence@legacy-engines-queued:
- shard-snb: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#1099]) +1 similar issue
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-snb1/igt@gem_ctx_persistence@legacy-engines-queued.html
* igt@gem_eio@unwedge-stress:
- shard-snb: NOTRUN -> [FAIL][4] ([i915#8898])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-snb7/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-apl: [PASS][5] -> [FAIL][6] ([i915#2842])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-apl1/igt@gem_exec_fair@basic-none-solo@rcs0.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-apl2/igt@gem_exec_fair@basic-none-solo@rcs0.html
* igt@gem_exec_fair@basic-pace@vecs0:
- shard-rkl: [PASS][7] -> [FAIL][8] ([i915#2842])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-rkl-2/igt@gem_exec_fair@basic-pace@vecs0.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-6/igt@gem_exec_fair@basic-pace@vecs0.html
* igt@gem_exec_fence@concurrent:
- shard-dg2: NOTRUN -> [SKIP][9] ([i915#4812])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_exec_fence@concurrent.html
* igt@gem_exec_flush@basic-batch-kernel-default-uc:
- shard-dg2: NOTRUN -> [SKIP][10] ([i915#3539] / [i915#4852])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_exec_flush@basic-batch-kernel-default-uc.html
* igt@gem_exec_reloc@basic-wc-read:
- shard-dg2: NOTRUN -> [SKIP][11] ([i915#3281])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_exec_reloc@basic-wc-read.html
* igt@gem_exec_schedule@reorder-wide:
- shard-dg2: NOTRUN -> [SKIP][12] ([i915#4537] / [i915#4812])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_exec_schedule@reorder-wide.html
* igt@gem_fenced_exec_thrash@no-spare-fences-interruptible:
- shard-dg2: NOTRUN -> [SKIP][13] ([i915#4860])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_fenced_exec_thrash@no-spare-fences-interruptible.html
* igt@gem_mmap_gtt@basic-small-bo-tiledy:
- shard-dg2: NOTRUN -> [SKIP][14] ([i915#4077]) +2 similar issues
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_mmap_gtt@basic-small-bo-tiledy.html
* igt@gem_pwrite@basic-self:
- shard-dg2: NOTRUN -> [SKIP][15] ([i915#3282])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_pwrite@basic-self.html
* igt@gem_set_tiling_vs_blt@tiled-to-untiled:
- shard-dg2: NOTRUN -> [SKIP][16] ([i915#4079]) +1 similar issue
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html
* igt@gem_userptr_blits@readonly-unsync:
- shard-dg2: NOTRUN -> [SKIP][17] ([i915#3297])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_userptr_blits@readonly-unsync.html
* igt@gen7_exec_parse@oacontrol-tracking:
- shard-dg2: NOTRUN -> [SKIP][18] ([fdo#109289])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gen7_exec_parse@oacontrol-tracking.html
* igt@gen9_exec_parse@unaligned-jump:
- shard-dg2: NOTRUN -> [SKIP][19] ([i915#2856])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gen9_exec_parse@unaligned-jump.html
* igt@i915_pipe_stress@stress-xrgb8888-untiled:
- shard-mtlp: [PASS][20] -> [FAIL][21] ([i915#8691])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-mtlp-4/igt@i915_pipe_stress@stress-xrgb8888-untiled.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-mtlp-2/igt@i915_pipe_stress@stress-xrgb8888-untiled.html
* igt@i915_pm_dc@dc6-dpms:
- shard-dg2: NOTRUN -> [SKIP][22] ([i915#5978])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@i915_pm_dc@dc6-dpms.html
* igt@i915_pm_rpm@dpms-lpsp:
- shard-rkl: [PASS][23] -> [SKIP][24] ([i915#1397]) +2 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-rkl-7/igt@i915_pm_rpm@dpms-lpsp.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-1/igt@i915_pm_rpm@dpms-lpsp.html
* igt@i915_pm_rpm@system-suspend-modeset:
- shard-tglu: [PASS][25] -> [FAIL][26] ([i915#7940])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-tglu-9/igt@i915_pm_rpm@system-suspend-modeset.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-tglu-2/igt@i915_pm_rpm@system-suspend-modeset.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y-rc_ccs:
- shard-rkl: NOTRUN -> [SKIP][27] ([i915#8502]) +3 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-7/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y-rc_ccs.html
* igt@kms_async_flips@crc@pipe-b-hdmi-a-1:
- shard-snb: NOTRUN -> [FAIL][28] ([i915#8247]) +1 similar issue
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-snb1/igt@kms_async_flips@crc@pipe-b-hdmi-a-1.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
- shard-mtlp: [PASS][29] -> [FAIL][30] ([i915#5138])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-mtlp-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-mtlp-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-90:
- shard-dg2: NOTRUN -> [SKIP][31] ([i915#5190]) +2 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
- shard-dg2: NOTRUN -> [SKIP][32] ([i915#4538] / [i915#5190]) +1 similar issue
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html
* igt@kms_big_joiner@2x-modeset:
- shard-dg2: NOTRUN -> [SKIP][33] ([i915#2705])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_big_joiner@2x-modeset.html
* igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_mc_ccs:
- shard-dg2: NOTRUN -> [SKIP][34] ([i915#3689] / [i915#3886] / [i915#5354])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_rc_ccs_cc:
- shard-snb: NOTRUN -> [SKIP][35] ([fdo#109271]) +207 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-snb1/igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_ccs:
- shard-dg2: NOTRUN -> [SKIP][36] ([i915#3689] / [i915#5354]) +4 similar issues
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_ccs.html
* igt@kms_cdclk@plane-scaling@pipe-b-dp-4:
- shard-dg2: NOTRUN -> [SKIP][37] ([i915#4087]) +3 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-11/igt@kms_cdclk@plane-scaling@pipe-b-dp-4.html
* igt@kms_chamelium_hpd@vga-hpd-with-enabled-mode:
- shard-dg2: NOTRUN -> [SKIP][38] ([i915#7828]) +2 similar issues
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_chamelium_hpd@vga-hpd-with-enabled-mode.html
* igt@kms_content_protection@atomic-dpms@pipe-a-dp-2:
- shard-dg2: NOTRUN -> [TIMEOUT][39] ([i915#8628])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-12/igt@kms_content_protection@atomic-dpms@pipe-a-dp-2.html
* igt@kms_content_protection@dp-mst-lic-type-1:
- shard-dg2: NOTRUN -> [SKIP][40] ([i915#3299])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_content_protection@dp-mst-lic-type-1.html
* igt@kms_cursor_crc@cursor-onscreen-max-size:
- shard-dg2: NOTRUN -> [SKIP][41] ([i915#3555])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_cursor_crc@cursor-onscreen-max-size.html
* igt@kms_cursor_crc@cursor-sliding-512x170:
- shard-dg2: NOTRUN -> [SKIP][42] ([i915#3359])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_cursor_crc@cursor-sliding-512x170.html
* igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-3:
- shard-dg2: NOTRUN -> [FAIL][43] ([fdo#103375]) +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-5/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-3.html
* igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
- shard-dg2: NOTRUN -> [SKIP][44] ([fdo#109274] / [i915#5354])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
- shard-snb: NOTRUN -> [SKIP][45] ([fdo#109271] / [fdo#111767]) +2 similar issues
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-snb1/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-glk: [PASS][46] -> [FAIL][47] ([i915#2346])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_display_modes@mst-extended-mode-negative:
- shard-dg2: NOTRUN -> [SKIP][48] ([i915#8588])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_display_modes@mst-extended-mode-negative.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][49] ([i915#3804])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-1/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2.html
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
- shard-dg2: NOTRUN -> [SKIP][50] ([fdo#109274]) +1 similar issue
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html
* igt@kms_flip@flip-vs-suspend@a-vga1:
- shard-snb: NOTRUN -> [DMESG-WARN][51] ([i915#8841]) +2 similar issues
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-snb7/igt@kms_flip@flip-vs-suspend@a-vga1.html
* igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a1:
- shard-glk: [PASS][52] -> [FAIL][53] ([i915#2122]) +1 similar issue
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-glk1/igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a1.html
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-glk9/igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a1.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][54] ([i915#2672])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][55] ([i915#2672] / [i915#3555])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render:
- shard-dg2: NOTRUN -> [SKIP][56] ([i915#3458]) +5 similar issues
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt:
- shard-dg2: NOTRUN -> [SKIP][57] ([i915#5354]) +9 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][58] ([i915#8708]) +2 similar issues
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt.html
* igt@kms_getfb@getfb-reject-ccs:
- shard-dg2: NOTRUN -> [SKIP][59] ([i915#6118])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_getfb@getfb-reject-ccs.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-rkl: NOTRUN -> [SKIP][60] ([i915#3555] / [i915#8228])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-7/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1:
- shard-glk: NOTRUN -> [FAIL][61] ([i915#4573]) +1 similar issue
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-glk6/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1.html
* igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-d-dp-4:
- shard-dg2: NOTRUN -> [SKIP][62] ([i915#5176]) +7 similar issues
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-11/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-d-dp-4.html
* igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-a-hdmi-a-1:
- shard-rkl: NOTRUN -> [SKIP][63] ([i915#5176]) +5 similar issues
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-7/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-a-hdmi-a-1.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-d-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][64] ([i915#5235]) +7 similar issues
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-7/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-d-hdmi-a-3.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-1:
- shard-rkl: NOTRUN -> [SKIP][65] ([i915#5235]) +3 similar issues
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-7/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-1.html
* igt@kms_psr2_sf@primary-plane-update-sf-dmg-area:
- shard-glk: NOTRUN -> [SKIP][66] ([fdo#109271] / [i915#658])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-glk6/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-dg2: NOTRUN -> [SKIP][67] ([i915#658])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@psr2_sprite_mmap_cpu:
- shard-dg2: NOTRUN -> [SKIP][68] ([i915#1072])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_psr@psr2_sprite_mmap_cpu.html
* igt@kms_setmode@basic@pipe-a-vga-1:
- shard-snb: NOTRUN -> [FAIL][69] ([i915#5465]) +1 similar issue
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-snb7/igt@kms_setmode@basic@pipe-a-vga-1.html
* igt@perf_pmu@rc6-suspend:
- shard-dg2: [PASS][70] -> [FAIL][71] ([fdo#103375])
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg2-2/igt@perf_pmu@rc6-suspend.html
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-5/igt@perf_pmu@rc6-suspend.html
* igt@prime_vgem@basic-read:
- shard-dg2: NOTRUN -> [SKIP][72] ([i915#3291] / [i915#3708])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@prime_vgem@basic-read.html
* igt@v3d/v3d_wait_bo@unused-bo-0ns:
- shard-dg2: NOTRUN -> [SKIP][73] ([i915#2575]) +2 similar issues
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@v3d/v3d_wait_bo@unused-bo-0ns.html
* igt@vc4/vc4_lookup_fail@bad-color-write:
- shard-glk: NOTRUN -> [SKIP][74] ([fdo#109271]) +40 similar issues
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-glk6/igt@vc4/vc4_lookup_fail@bad-color-write.html
* igt@vc4/vc4_wait_seqno@bad-seqno-0ns:
- shard-dg2: NOTRUN -> [SKIP][75] ([i915#7711])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@vc4/vc4_wait_seqno@bad-seqno-0ns.html
#### Possible fixes ####
* igt@fbdev@unaligned-write:
- shard-dg2: [FAIL][76] -> [PASS][77]
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg2-6/igt@fbdev@unaligned-write.html
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@fbdev@unaligned-write.html
* igt@gem_barrier_race@remote-request@rcs0:
- shard-glk: [ABORT][78] ([i915#7461] / [i915#8211]) -> [PASS][79]
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-glk5/igt@gem_barrier_race@remote-request@rcs0.html
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-glk6/igt@gem_barrier_race@remote-request@rcs0.html
* igt@gem_eio@hibernate:
- {shard-dg1}: [ABORT][80] ([i915#4391] / [i915#7975] / [i915#8213]) -> [PASS][81]
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg1-14/igt@gem_eio@hibernate.html
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg1-13/igt@gem_eio@hibernate.html
* igt@gem_exec_endless@dispatch@vecs0:
- shard-tglu: [TIMEOUT][82] ([i915#3778]) -> [PASS][83]
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-tglu-8/igt@gem_exec_endless@dispatch@vecs0.html
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-tglu-8/igt@gem_exec_endless@dispatch@vecs0.html
* igt@gem_exec_fair@basic-deadline:
- shard-glk: [FAIL][84] ([i915#2846]) -> [PASS][85]
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-glk8/igt@gem_exec_fair@basic-deadline.html
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-glk4/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-none@vecs0:
- shard-rkl: [FAIL][86] ([i915#2842]) -> [PASS][87] +1 similar issue
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-rkl-4/igt@gem_exec_fair@basic-none@vecs0.html
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-1/igt@gem_exec_fair@basic-none@vecs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [FAIL][88] ([i915#2842]) -> [PASS][89]
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-glk3/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_lmem_swapping@smem-oom@lmem0:
- {shard-dg1}: [TIMEOUT][90] ([i915#5493]) -> [PASS][91]
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg1-19/igt@gem_lmem_swapping@smem-oom@lmem0.html
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html
* igt@gem_mmap_offset@clear@smem0:
- shard-mtlp: [INCOMPLETE][92] ([i915#5493] / [i915#8939]) -> [PASS][93]
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-mtlp-2/igt@gem_mmap_offset@clear@smem0.html
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-mtlp-3/igt@gem_mmap_offset@clear@smem0.html
* {igt@i915_pm_freq_api@freq-suspend@gt0}:
- shard-dg2: [FAIL][94] ([fdo#103375]) -> [PASS][95]
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg2-5/igt@i915_pm_freq_api@freq-suspend@gt0.html
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-3/igt@i915_pm_freq_api@freq-suspend@gt0.html
* igt@i915_pm_rc6_residency@rc6-idle@bcs0:
- {shard-dg1}: [FAIL][96] ([i915#3591]) -> [PASS][97]
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg1-12/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg1-13/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html
* igt@i915_pm_rpm@cursor:
- {shard-dg1}: [FAIL][98] ([i915#7940]) -> [PASS][99]
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg1-15/igt@i915_pm_rpm@cursor.html
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg1-14/igt@i915_pm_rpm@cursor.html
* igt@i915_pm_rpm@gem-execbuf-stress@extra-wait-smem0:
- shard-tglu: [FAIL][100] ([i915#7940]) -> [PASS][101] +1 similar issue
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-tglu-9/igt@i915_pm_rpm@gem-execbuf-stress@extra-wait-smem0.html
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-tglu-4/igt@i915_pm_rpm@gem-execbuf-stress@extra-wait-smem0.html
* igt@i915_pm_rpm@modeset-non-lpsp:
- shard-rkl: [SKIP][102] ([i915#1397]) -> [PASS][103]
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-rkl-7/igt@i915_pm_rpm@modeset-non-lpsp.html
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-1/igt@i915_pm_rpm@modeset-non-lpsp.html
* igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-dg2: [SKIP][104] ([i915#1397]) -> [PASS][105]
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg2-12/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-11/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@i915_suspend@basic-s3-without-i915:
- shard-rkl: [FAIL][106] ([fdo#103375]) -> [PASS][107]
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-rkl-6/igt@i915_suspend@basic-s3-without-i915.html
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-7/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-180:
- shard-mtlp: [FAIL][108] ([i915#5138]) -> [PASS][109]
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-mtlp-4/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-mtlp-2/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html
* igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic:
- shard-dg2: [TIMEOUT][110] -> [PASS][111]
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg2-11/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html
* igt@kms_cursor_legacy@forked-move@all-pipes:
- shard-mtlp: [DMESG-WARN][112] ([i915#2017]) -> [PASS][113]
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-mtlp-4/igt@kms_cursor_legacy@forked-move@all-pipes.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-mtlp-2/igt@kms_cursor_legacy@forked-move@all-pipes.html
* igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a2:
- shard-glk: [FAIL][114] ([i915#79]) -> [PASS][115]
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-glk7/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a2.html
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-glk5/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a2.html
* igt@kms_vblank@pipe-b-wait-busy-hang:
- shard-snb: [ABORT][116] -> [PASS][117]
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-snb1/igt@kms_vblank@pipe-b-wait-busy-hang.html
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-snb4/igt@kms_vblank@pipe-b-wait-busy-hang.html
#### Warnings ####
* igt@gem_exec_await@wide-contexts:
- shard-dg2: [TIMEOUT][118] ([i915#5892]) -> [FAIL][119] ([i915#5892])
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg2-11/igt@gem_exec_await@wide-contexts.html
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_exec_await@wide-contexts.html
* igt@gem_exec_flush@basic-wb-ro-before-default:
- shard-dg2: [TIMEOUT][120] -> [SKIP][121] ([i915#3539] / [i915#4852])
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg2-11/igt@gem_exec_flush@basic-wb-ro-before-default.html
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_exec_flush@basic-wb-ro-before-default.html
* igt@gem_mmap_gtt@pf-nonblock:
- shard-dg2: [TIMEOUT][122] -> [SKIP][123] ([i915#4077])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg2-11/igt@gem_mmap_gtt@pf-nonblock.html
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_mmap_gtt@pf-nonblock.html
* igt@gem_userptr_blits@create-destroy-unsync:
- shard-dg2: [TIMEOUT][124] -> [SKIP][125] ([i915#3297])
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg2-11/igt@gem_userptr_blits@create-destroy-unsync.html
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@gem_userptr_blits@create-destroy-unsync.html
* igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-tglu: [SKIP][126] ([fdo#111644] / [i915#1397]) -> [FAIL][127] ([i915#7940])
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-tglu-9/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-tglu-2/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@i915_selftest@live@slpc:
- shard-mtlp: [DMESG-WARN][128] ([i915#6367] / [i915#8937]) -> [DMESG-WARN][129] ([i915#8937])
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-mtlp-7/igt@i915_selftest@live@slpc.html
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-mtlp-1/igt@i915_selftest@live@slpc.html
* igt@kms_content_protection@type1:
- shard-dg2: [SKIP][130] ([i915#7118]) -> [SKIP][131] ([i915#7118] / [i915#7162])
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg2-10/igt@kms_content_protection@type1.html
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-11/igt@kms_content_protection@type1.html
* igt@kms_fbcon_fbt@psr:
- shard-rkl: [SKIP][132] ([fdo#110189] / [i915#3955]) -> [SKIP][133] ([i915#3955])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-rkl-1/igt@kms_fbcon_fbt@psr.html
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-4/igt@kms_fbcon_fbt@psr.html
* igt@kms_fbcon_fbt@psr-suspend:
- shard-rkl: [SKIP][134] ([i915#3955]) -> [SKIP][135] ([fdo#110189] / [i915#3955])
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-rkl-7/igt@kms_fbcon_fbt@psr-suspend.html
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-1/igt@kms_fbcon_fbt@psr-suspend.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt:
- shard-dg2: [TIMEOUT][136] -> [SKIP][137] ([i915#5354])
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-dg2-11/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-rkl: [SKIP][138] ([i915#4816]) -> [SKIP][139] ([i915#4070] / [i915#4816])
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13399/shard-rkl-7/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/shard-rkl-2/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
[fdo#111767]: https://bugs.freedesktop.org/show_bug.cgi?id=111767
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#2017]: https://gitlab.freedesktop.org/drm/intel/issues/2017
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778
[i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
[i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
[i915#4537]: https://gitlab.freedesktop.org/drm/intel/issues/4537
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816
[i915#4818]: https://gitlab.freedesktop.org/drm/intel/issues/4818
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#5465]: https://gitlab.freedesktop.org/drm/intel/issues/5465
[i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
[i915#5892]: https://gitlab.freedesktop.org/drm/intel/issues/5892
[i915#5978]: https://gitlab.freedesktop.org/drm/intel/issues/5978
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6118]: https://gitlab.freedesktop.org/drm/intel/issues/6118
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#7162]: https://gitlab.freedesktop.org/drm/intel/issues/7162
[i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#7940]: https://gitlab.freedesktop.org/drm/intel/issues/7940
[i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
[i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
[i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
[i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
[i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
[i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
[i915#8502]: https://gitlab.freedesktop.org/drm/intel/issues/8502
[i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555
[i915#8588]: https://gitlab.freedesktop.org/drm/intel/issues/8588
[i915#8628]: https://gitlab.freedesktop.org/drm/intel/issues/8628
[i915#8661]: https://gitlab.freedesktop.org/drm/intel/issues/8661
[i915#8691]: https://gitlab.freedesktop.org/drm/intel/issues/8691
[i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708
[i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841
[i915#8898]: https://gitlab.freedesktop.org/drm/intel/issues/8898
[i915#8925]: https://gitlab.freedesktop.org/drm/intel/issues/8925
[i915#8937]: https://gitlab.freedesktop.org/drm/intel/issues/8937
[i915#8939]: https://gitlab.freedesktop.org/drm/intel/issues/8939
Build changes
-------------
* Linux: CI_DRM_13399 -> Patchwork_120170v3
CI-20190529: 20190529
CI_DRM_13399: fcafac400c8ed8c9fe9419e94a6cd2dc3bc87da1 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7396: 8e84faf33c2cf3482c7dff814d256089bc03db5d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_120170v3: fcafac400c8ed8c9fe9419e94a6cd2dc3bc87da1 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120170v3/index.html
[-- Attachment #2: Type: text/html, Size: 42574 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory
2023-07-20 9:35 [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory Janusz Krzysztofik
` (3 preceding siblings ...)
2023-07-20 21:22 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
@ 2023-07-28 13:30 ` Andi Shyti
2023-07-31 10:31 ` Andi Shyti
5 siblings, 0 replies; 7+ messages in thread
From: Andi Shyti @ 2023-07-28 13:30 UTC (permalink / raw)
To: Janusz Krzysztofik
Cc: Chris Wilson, intel-gfx, dri-devel, Andrzej Hajda, Daniel Vetter,
Rodrigo Vivi, David Airlie, Nirmoy Das
Hi Janusz,
On Thu, Jul 20, 2023 at 11:35:44AM +0200, Janusz Krzysztofik wrote:
> Infinite waits for completion of GPU activity have been observed in CI,
> mostly inside __i915_active_wait(), triggered by igt@gem_barrier_race or
> igt@perf@stress-open-close. Root cause analysis, based of ftrace dumps
> generated with a lot of extra trace_printk() calls added to the code,
> revealed loops of request dependencies being accidentally built,
> preventing the requests from being processed, each waiting for completion
> of another one's activity.
>
> After we substitute a new request for a last active one tracked on a
> timeline, we set up a dependency of our new request to wait on completion
> of current activity of that previous one. While doing that, we must take
> care of keeping the old request still in memory until we use its
> attributes for setting up that await dependency, or we can happen to set
> up the await dependency on an unrelated request that already reuses the
> memory previously allocated to the old one, already released. Combined
> with perf adding consecutive kernel context remote requests to different
> user context timelines, unresolvable loops of await dependencies can be
> built, leading do infinite waits.
>
> We obtain a pointer to the previous request to wait upon when we
> substitute it with a pointer to our new request in an active tracker,
> e.g. in intel_timeline.last_request. In some processing paths we protect
> that old request from being freed before we use it by getting a reference
> to it under RCU protection, but in others, e.g. __i915_request_commit()
> -> __i915_request_add_to_timeline() -> __i915_request_ensure_ordering(),
> we don't. But anyway, since the requests' memory is SLAB_FAILSAFE_BY_RCU,
> that RCU protection is not sufficient against reuse of memory.
>
> We could protect i915_request's memory from being prematurely reused by
> calling its release function via call_rcu() and using rcu_read_lock()
> consequently, as proposed in v1. However, that approach leads to
> significant (up to 10 times) increase of SLAB utilization by i915_request
> SLAB cache. Another potential approach is to take a reference to the
> previous active fence.
>
> When updating an active fence tracker, we first lock the new fence,
> substitute a pointer of the current active fence with the new one, then we
> lock the substituted fence. With this approach, there is a time window
> after the substitution and before the lock when the request can be
> concurrently released by an interrupt handler and its memory reused, then
> we may happen to lock and return a new, unrelated request.
>
> Always get a reference to the current active fence first, before
> replacing it with a new one. Having it protected from premature release
> and reuse, lock it and then replace with the new one but only if not
> yet signalled via a potential concurrent interrupt nor replaced with
> another one by a potential concurrent thread, otherwise retry, starting
> from getting a reference to the new current one. Adjust users to not
> get a reference to the previous active fence themselves and always put the
> reference got by __i915_active_fence_set() when no longer needed.
>
> v3: Fix lockdep splat reports and other issues caused by incorrect use of
> try_cmpxchg() (use (cmpxchg() != prev) instead)
> v2: Protect request's memory by getting a reference to it in favor of
> delegating its release to call_rcu() (Chris)
>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/8211
> Fixes: df9f85d8582e ("drm/i915: Serialise i915_active_fence_set() with itself")
> Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> Cc: <stable@vger.kernel.org> # v5.6+
thanks for the offline clarification on this! It's another good
catch of yours :)
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Thank you!
Andi
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory
2023-07-20 9:35 [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory Janusz Krzysztofik
` (4 preceding siblings ...)
2023-07-28 13:30 ` [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory Andi Shyti
@ 2023-07-31 10:31 ` Andi Shyti
5 siblings, 0 replies; 7+ messages in thread
From: Andi Shyti @ 2023-07-31 10:31 UTC (permalink / raw)
To: Janusz Krzysztofik
Cc: Chris Wilson, intel-gfx, dri-devel, Andrzej Hajda, Daniel Vetter,
Rodrigo Vivi, David Airlie, Nirmoy Das
Hi Janusz,
On Thu, Jul 20, 2023 at 11:35:44AM +0200, Janusz Krzysztofik wrote:
> Infinite waits for completion of GPU activity have been observed in CI,
> mostly inside __i915_active_wait(), triggered by igt@gem_barrier_race or
> igt@perf@stress-open-close. Root cause analysis, based of ftrace dumps
> generated with a lot of extra trace_printk() calls added to the code,
> revealed loops of request dependencies being accidentally built,
> preventing the requests from being processed, each waiting for completion
> of another one's activity.
>
> After we substitute a new request for a last active one tracked on a
> timeline, we set up a dependency of our new request to wait on completion
> of current activity of that previous one. While doing that, we must take
> care of keeping the old request still in memory until we use its
> attributes for setting up that await dependency, or we can happen to set
> up the await dependency on an unrelated request that already reuses the
> memory previously allocated to the old one, already released. Combined
> with perf adding consecutive kernel context remote requests to different
> user context timelines, unresolvable loops of await dependencies can be
> built, leading do infinite waits.
>
> We obtain a pointer to the previous request to wait upon when we
> substitute it with a pointer to our new request in an active tracker,
> e.g. in intel_timeline.last_request. In some processing paths we protect
> that old request from being freed before we use it by getting a reference
> to it under RCU protection, but in others, e.g. __i915_request_commit()
> -> __i915_request_add_to_timeline() -> __i915_request_ensure_ordering(),
> we don't. But anyway, since the requests' memory is SLAB_FAILSAFE_BY_RCU,
> that RCU protection is not sufficient against reuse of memory.
>
> We could protect i915_request's memory from being prematurely reused by
> calling its release function via call_rcu() and using rcu_read_lock()
> consequently, as proposed in v1. However, that approach leads to
> significant (up to 10 times) increase of SLAB utilization by i915_request
> SLAB cache. Another potential approach is to take a reference to the
> previous active fence.
>
> When updating an active fence tracker, we first lock the new fence,
> substitute a pointer of the current active fence with the new one, then we
> lock the substituted fence. With this approach, there is a time window
> after the substitution and before the lock when the request can be
> concurrently released by an interrupt handler and its memory reused, then
> we may happen to lock and return a new, unrelated request.
>
> Always get a reference to the current active fence first, before
> replacing it with a new one. Having it protected from premature release
> and reuse, lock it and then replace with the new one but only if not
> yet signalled via a potential concurrent interrupt nor replaced with
> another one by a potential concurrent thread, otherwise retry, starting
> from getting a reference to the new current one. Adjust users to not
> get a reference to the previous active fence themselves and always put the
> reference got by __i915_active_fence_set() when no longer needed.
>
> v3: Fix lockdep splat reports and other issues caused by incorrect use of
> try_cmpxchg() (use (cmpxchg() != prev) instead)
> v2: Protect request's memory by getting a reference to it in favor of
> delegating its release to call_rcu() (Chris)
>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/8211
> Fixes: df9f85d8582e ("drm/i915: Serialise i915_active_fence_set() with itself")
> Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> Cc: <stable@vger.kernel.org> # v5.6+
pushed to drm-intel-gt-next... thank you!
Andi
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-07-31 10:32 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-20 9:35 [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory Janusz Krzysztofik
2023-07-20 15:14 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Fix premature release of request's reusable memory (rev3) Patchwork
2023-07-20 15:14 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-07-20 15:27 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-07-20 21:22 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2023-07-28 13:30 ` [Intel-gfx] [PATCH v3] drm/i915: Fix premature release of request's reusable memory Andi Shyti
2023-07-31 10:31 ` Andi Shyti
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox