All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] drm/i915: Use rcu_dereference() in hwsp_offset()
@ 2025-11-04 11:33 Sebastian Brzezinka
  2025-11-04 11:42 ` Sebastian Brzezinka
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Sebastian Brzezinka @ 2025-11-04 11:33 UTC (permalink / raw)
  To: intel-gfx, chris.p.wilson, andi.shyti, krzysztof.karas,
	krzysztof.niemiec, sebastian.brzezinka
  Cc: chris.p.wilson, andi.shyti, krzysztof.karas, krzysztof.niemiec,
	Sebastian Brzezinka

Replace rcu_dereference_protected() with rcu_dereference() in
hwsp_offset() since the function is called within an RCU read-side
critical section. Using rcu_dereference() avoids unnecessary
protection checks and aligns with correct RCU usage patterns.

Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
---
I noticed that the current implementation of hwsp_offset() uses rcu_dereference_protected()
when accessing rq->timeline. This seems to be a slight misuse of the API.
rcu_dereference_protected() is intended for updater-side code, where we are not holding
rcu_read_lock() but instead rely on another lock that guarantees safety. The condition argument
in this function acts more like an assertion that the caller holds the required lock.
In our case, hwsp_offset() is called inside an RCU read-side critical section, which means
the correct primitive is rcu_dereference(). The original intent of the condition argument
seems to have been to guard against use-after-free scenarios for timeline(?). However,
rcu_dereference_protected() does not enforce that, it simply returns the pointer regardless
of i915_request_signaled(), and in rare cases this pattern has led to issues such as:
https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15181
'''
...
<4> [281.246503] drivers/gpu/drm/i915/gt/gen8_engine_cs.c:427 suspicious rcu_dereference_protected() usage!
<4> [281.246506]
other info that might help us debug this:
<4> [281.246507]
rcu_scheduler_active = 2, debug_locks = 1
<4> [281.246509] 5 locks held by gem_exec_whispe/2308:
<4> [281.246511]  #0: ffffc90002ae77c8 (reservation_ww_class_acquire){+.+.}-{0:0}, at: i915_gem_do_execbuffer+0xd2c/0x3710 [i915]
<4> [281.246852]  #1: ffffc90002ae77f0 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_gem_do_execbuffer+0xd2c/0x3710 [i915]
<4> [281.247073]  #2: ffff8881e8a4a878 (&timeline->mutex){+.+.}-{3:3}, at: i915_request_create+0x61/0x200 [i915]
<4> [281.247403]  #3: ffffffff83595560 (rcu_read_lock){....}-{1:2}, at: execlists_submission_tasklet+0x44/0x27b0 [i915]
<4> [281.247592]  #4: ffff88812f0c2020 (&sched_engine->lock){-.-.}-{2:2}, at: execlists_submission_tasklet+0x20d/0x27b0 [i915]
<4> [281.247787]
stack backtrace:
<4> [281.247789] CPU: 9 UID: 0 PID: 2308 Comm: gem_exec_whispe Tainted: G     U              6.17.0-CI_DRM_17306-gb3f121acbde4+ #1 PREEMPT(voluntary)
<4> [281.247792] Tainted: [U]=USER
<4> [281.247792] Hardware name: Intel Corporation Rocket Lake Client Platform/RocketLake S UDIMM 6L RVP, BIOS RKLSFWI1.R00.6062.A00.2502050210 02/05/2025
<4> [281.247793] Call Trace:
<4> [281.247794]  <IRQ>
<4> [281.247796]  dump_stack_lvl+0x91/0xf0
<4> [281.247802]  dump_stack+0x10/0x20
<4> [281.247804]  lockdep_rcu_suspicious+0x151/0x1e0
<4> [281.247811]  ? __i915_request_submit+0xb0/0x430 [i915]
<4> [281.248010]  hwsp_offset+0x90/0xa0 [i915]
<4> [281.248199]  gen12_emit_fini_breadcrumb_rcs+0xdf/0x480 [i915]
<4> [281.248388]  ? __i915_request_submit+0xb0/0x430 [i915]
<4> [281.248584]  __i915_request_submit+0x15b/0x430 [i915]
<4> [281.248781]  execlists_submission_tasklet+0xdfa/0x27b0 [i915]
<4> [281.248974]  ? mark_held_locks+0x46/0x90
<4> [281.248982]  tasklet_action_common+0x166/0x410
<4> [281.248988]  tasklet_hi_action+0x29/0x40
<4> [281.248990]  handle_softirqs+0xd7/0x4d0
<4> [281.248994]  ? __i915_request_queue+0x3f/0x80 [i915]
<4> [281.249194]  __do_softirq+0x10/0x18
<4> [281.249197]  do_softirq.part.0+0x47/0xd0
...
'''

This issue reproduces very rarely, and I haven’t been able to reproduce it myself, so
I’m not entirely sure why this scenario occurs why we attempt to emit a breadcrumb even
when the request’s fence is already signaled. However, the correct approach seems to be:
 - Drop the use of rcu_dereference_protected() in this context, since it’s not providing
   real safety here.
 - Avoid emitting a breadcrumb at all when the request is already signaled, as
   doing so appears unnecessary.

My concern is that breadcrumbs seem to be emitted in __i915_request_submit, which appears
to be well-guarded against processing retried requests. This leaves me puzzled about what’s
actually happening here.
---
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 3 +--
 drivers/gpu/drm/i915/i915_request.c      | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
index e9f65f27b53f..b799d423d306 100644
--- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
@@ -424,8 +424,7 @@ static u32 hwsp_offset(const struct i915_request *rq)
 	const struct intel_timeline *tl;
 
 	/* Before the request is executed, the timeline is fixed */
-	tl = rcu_dereference_protected(rq->timeline,
-				       !i915_request_signaled(rq));
+	tl = rcu_dereference(rq->timeline);
 
 	/* See the comment in i915_request_active_seqno(). */
 	return page_mask_bits(tl->hwsp_offset) + offset_in_page(rq->hwsp_seqno);
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index b9a2b2194c8f..25a9e574149e 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -657,7 +657,7 @@ bool __i915_request_submit(struct i915_request *request)
 	if (request->sched.semaphores &&
 	    i915_sw_fence_signaled(&request->semaphore))
 		engine->saturated |= request->sched.semaphores;
-
+	/*It seems that breadcrumbs are being emitted here.*/
 	engine->emit_fini_breadcrumb(request,
 				     request->ring->vaddr + request->postfix);
 
-- 
2.34.1


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

* Re: [RFC PATCH] drm/i915: Use rcu_dereference() in hwsp_offset()
  2025-11-04 11:33 [RFC PATCH] drm/i915: Use rcu_dereference() in hwsp_offset() Sebastian Brzezinka
@ 2025-11-04 11:42 ` Sebastian Brzezinka
  2025-11-05  1:59 ` ✗ i915.CI.BAT: failure for " Patchwork
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Sebastian Brzezinka @ 2025-11-04 11:42 UTC (permalink / raw)
  To: Sebastian Brzezinka, intel-gfx, chris.p.wilson, andi.shyti,
	krzysztof.karas, krzysztof.niemiec

TL;DR:
1. If rcu_dereference_protected is intended to prevent use-after-free, it currently doesn’t.
2. Does anyone know how we end up in this state and what the proper way to prevent it is?
   Adding an if check before engine->emit_fini_breadcrumb feels like a hack.
-- 
Best regards,
Sebastian


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

* ✗ i915.CI.BAT: failure for drm/i915: Use rcu_dereference() in hwsp_offset()
  2025-11-04 11:33 [RFC PATCH] drm/i915: Use rcu_dereference() in hwsp_offset() Sebastian Brzezinka
  2025-11-04 11:42 ` Sebastian Brzezinka
@ 2025-11-05  1:59 ` Patchwork
  2025-11-19 10:29 ` ✗ i915.CI.BAT: failure for drm/i915: Use rcu_dereference() in hwsp_offset() (rev2) Patchwork
  2025-11-19 15:58 ` [RFC PATCH] drm/i915: Use rcu_dereference() in hwsp_offset() Janusz Krzysztofik
  3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2025-11-05  1:59 UTC (permalink / raw)
  To: Sebastian Brzezinka; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 18446 bytes --]

== Series Details ==

Series: drm/i915: Use rcu_dereference() in hwsp_offset()
URL   : https://patchwork.freedesktop.org/series/157001/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_17481 -> Patchwork_157001v1
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_157001v1 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_157001v1, please notify your bug team (I915-ci-infra@lists.freedesktop.org) 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_157001v1/index.html

Participating hosts (46 -> 45)
------------------------------

  Missing    (1): fi-snb-2520m 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_157001v1:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_module_load@load:
    - bat-dg2-13:         [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-13/igt@i915_module_load@load.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-13/igt@i915_module_load@load.html

  * igt@i915_pm_rpm@module-reload:
    - bat-dg2-14:         [PASS][3] -> [DMESG-WARN][4] +43 other tests dmesg-warn
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-14/igt@i915_pm_rpm@module-reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-14/igt@i915_pm_rpm@module-reload.html
    - fi-bsw-nick:        [PASS][5] -> [DMESG-WARN][6] +40 other tests dmesg-warn
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-bsw-nick/igt@i915_pm_rpm@module-reload.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-bsw-nick/igt@i915_pm_rpm@module-reload.html
    - bat-kbl-2:          [PASS][7] -> [DMESG-WARN][8] +40 other tests dmesg-warn
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-kbl-2/igt@i915_pm_rpm@module-reload.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-kbl-2/igt@i915_pm_rpm@module-reload.html
    - bat-adlp-6:         [PASS][9] -> [DMESG-WARN][10] +40 other tests dmesg-warn
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-adlp-6/igt@i915_pm_rpm@module-reload.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-adlp-6/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live@client:
    - bat-dg2-8:          [PASS][11] -> [DMESG-WARN][12] +41 other tests dmesg-warn
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-8/igt@i915_selftest@live@client.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-8/igt@i915_selftest@live@client.html
    - fi-kbl-guc:         [PASS][13] -> [DMESG-WARN][14] +40 other tests dmesg-warn
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-kbl-guc/igt@i915_selftest@live@client.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-kbl-guc/igt@i915_selftest@live@client.html
    - bat-adls-6:         [PASS][15] -> [DMESG-WARN][16] +40 other tests dmesg-warn
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-adls-6/igt@i915_selftest@live@client.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-adls-6/igt@i915_selftest@live@client.html

  * igt@i915_selftest@live@coherency:
    - bat-dg2-9:          [PASS][17] -> [DMESG-WARN][18] +41 other tests dmesg-warn
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-9/igt@i915_selftest@live@coherency.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-9/igt@i915_selftest@live@coherency.html
    - fi-kbl-x1275:       [PASS][19] -> [DMESG-WARN][20] +40 other tests dmesg-warn
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-kbl-x1275/igt@i915_selftest@live@coherency.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-kbl-x1275/igt@i915_selftest@live@coherency.html
    - bat-adlp-11:        [PASS][21] -> [DMESG-WARN][22] +40 other tests dmesg-warn
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-adlp-11/igt@i915_selftest@live@coherency.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-adlp-11/igt@i915_selftest@live@coherency.html

  * igt@i915_selftest@live@gem:
    - fi-rkl-11600:       [PASS][23] -> [DMESG-WARN][24] +40 other tests dmesg-warn
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-rkl-11600/igt@i915_selftest@live@gem.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-rkl-11600/igt@i915_selftest@live@gem.html

  * igt@i915_selftest@live@gem_contexts:
    - bat-arls-6:         [PASS][25] -> [DMESG-WARN][26] +40 other tests dmesg-warn
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-arls-6/igt@i915_selftest@live@gem_contexts.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-arls-6/igt@i915_selftest@live@gem_contexts.html
    - bat-arlh-3:         [PASS][27] -> [DMESG-WARN][28] +40 other tests dmesg-warn
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-arlh-3/igt@i915_selftest@live@gem_contexts.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-arlh-3/igt@i915_selftest@live@gem_contexts.html

  * igt@i915_selftest@live@gt_contexts:
    - bat-jsl-1:          [PASS][29] -> [DMESG-WARN][30] +40 other tests dmesg-warn
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-jsl-1/igt@i915_selftest@live@gt_contexts.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-jsl-1/igt@i915_selftest@live@gt_contexts.html

  * igt@i915_selftest@live@gt_engines:
    - bat-dg1-6:          [PASS][31] -> [DMESG-WARN][32] +43 other tests dmesg-warn
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg1-6/igt@i915_selftest@live@gt_engines.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg1-6/igt@i915_selftest@live@gt_engines.html

  * igt@i915_selftest@live@gt_heartbeat:
    - bat-rpls-4:         [PASS][33] -> [DMESG-WARN][34] +40 other tests dmesg-warn
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-rpls-4/igt@i915_selftest@live@gt_heartbeat.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-rpls-4/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@gt_mocs:
    - bat-twl-2:          [PASS][35] -> [DMESG-WARN][36] +40 other tests dmesg-warn
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-twl-2/igt@i915_selftest@live@gt_mocs.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-twl-2/igt@i915_selftest@live@gt_mocs.html

  * igt@i915_selftest@live@gt_pm:
    - fi-tgl-1115g4:      [PASS][37] -> [DMESG-WARN][38] +40 other tests dmesg-warn
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-tgl-1115g4/igt@i915_selftest@live@gt_pm.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-tgl-1115g4/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@gt_tlb:
    - bat-adlp-9:         [PASS][39] -> [DMESG-WARN][40] +40 other tests dmesg-warn
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-adlp-9/igt@i915_selftest@live@gt_tlb.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-adlp-9/igt@i915_selftest@live@gt_tlb.html

  * igt@i915_selftest@live@guc_multi_lrc:
    - bat-mtlp-8:         [PASS][41] -> [DMESG-WARN][42] +40 other tests dmesg-warn
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-mtlp-8/igt@i915_selftest@live@guc_multi_lrc.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-mtlp-8/igt@i915_selftest@live@guc_multi_lrc.html

  * igt@i915_selftest@live@hangcheck:
    - bat-atsm-1:         [PASS][43] -> [DMESG-WARN][44] +41 other tests dmesg-warn
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-atsm-1/igt@i915_selftest@live@hangcheck.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-atsm-1/igt@i915_selftest@live@hangcheck.html
    - bat-mtlp-9:         [PASS][45] -> [DMESG-WARN][46] +40 other tests dmesg-warn
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-mtlp-9/igt@i915_selftest@live@hangcheck.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-mtlp-9/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@hugepages:
    - fi-glk-j4005:       [PASS][47] -> [DMESG-WARN][48] +40 other tests dmesg-warn
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-glk-j4005/igt@i915_selftest@live@hugepages.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-glk-j4005/igt@i915_selftest@live@hugepages.html

  * igt@i915_selftest@live@late_gt_pm:
    - fi-cfl-8109u:       [PASS][49] -> [DMESG-WARN][50] +40 other tests dmesg-warn
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html
    - fi-kbl-8809g:       [PASS][51] -> [DMESG-WARN][52] +40 other tests dmesg-warn
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-kbl-8809g/igt@i915_selftest@live@late_gt_pm.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-kbl-8809g/igt@i915_selftest@live@late_gt_pm.html

  * igt@i915_selftest@live@objects:
    - fi-skl-6600u:       [PASS][53] -> [DMESG-WARN][54] +40 other tests dmesg-warn
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-skl-6600u/igt@i915_selftest@live@objects.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-skl-6600u/igt@i915_selftest@live@objects.html

  * igt@i915_selftest@live@perf:
    - bat-dg2-11:         [PASS][55] -> [DMESG-WARN][56] +41 other tests dmesg-warn
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-11/igt@i915_selftest@live@perf.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-11/igt@i915_selftest@live@perf.html

  * igt@i915_selftest@live@sanitycheck:
    - fi-kbl-7567u:       [PASS][57] -> [DMESG-WARN][58] +40 other tests dmesg-warn
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
    - bat-twl-1:          [PASS][59] -> [DMESG-WARN][60] +40 other tests dmesg-warn
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-twl-1/igt@i915_selftest@live@sanitycheck.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-twl-1/igt@i915_selftest@live@sanitycheck.html
    - bat-jsl-5:          [PASS][61] -> [DMESG-WARN][62] +40 other tests dmesg-warn
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-jsl-5/igt@i915_selftest@live@sanitycheck.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-jsl-5/igt@i915_selftest@live@sanitycheck.html
    - bat-apl-1:          [PASS][63] -> [DMESG-WARN][64] +40 other tests dmesg-warn
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-apl-1/igt@i915_selftest@live@sanitycheck.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-apl-1/igt@i915_selftest@live@sanitycheck.html
    - bat-arls-5:         [PASS][65] -> [DMESG-WARN][66] +38 other tests dmesg-warn
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-arls-5/igt@i915_selftest@live@sanitycheck.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-arls-5/igt@i915_selftest@live@sanitycheck.html
    - bat-rplp-1:         [PASS][67] -> [DMESG-WARN][68] +40 other tests dmesg-warn
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-rplp-1/igt@i915_selftest@live@sanitycheck.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-rplp-1/igt@i915_selftest@live@sanitycheck.html
    - bat-arlh-2:         [PASS][69] -> [DMESG-WARN][70] +40 other tests dmesg-warn
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-arlh-2/igt@i915_selftest@live@sanitycheck.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-arlh-2/igt@i915_selftest@live@sanitycheck.html

  * igt@i915_selftest@live@slpc:
    - fi-cfl-guc:         [PASS][71] -> [DMESG-WARN][72] +40 other tests dmesg-warn
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-cfl-guc/igt@i915_selftest@live@slpc.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-cfl-guc/igt@i915_selftest@live@slpc.html
    - bat-mtlp-6:         [PASS][73] -> [DMESG-WARN][74] +40 other tests dmesg-warn
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-mtlp-6/igt@i915_selftest@live@slpc.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-mtlp-6/igt@i915_selftest@live@slpc.html

  * igt@i915_selftest@live@uncore:
    - bat-dg1-7:          [PASS][75] -> [DMESG-WARN][76] +43 other tests dmesg-warn
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg1-7/igt@i915_selftest@live@uncore.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg1-7/igt@i915_selftest@live@uncore.html

  * igt@i915_selftest@live@vma:
    - fi-cfl-8700k:       [PASS][77] -> [DMESG-WARN][78] +40 other tests dmesg-warn
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-cfl-8700k/igt@i915_selftest@live@vma.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-cfl-8700k/igt@i915_selftest@live@vma.html

  * igt@i915_selftest@live@workarounds:
    - fi-bsw-n3050:       [PASS][79] -> [DMESG-WARN][80] +40 other tests dmesg-warn
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/fi-bsw-n3050/igt@i915_selftest@live@workarounds.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/fi-bsw-n3050/igt@i915_selftest@live@workarounds.html

  
#### Warnings ####

  * igt@i915_selftest@live@workarounds:
    - bat-dg2-9:          [DMESG-FAIL][81] ([i915#12061]) -> [DMESG-WARN][82] +1 other test dmesg-warn
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-9/igt@i915_selftest@live@workarounds.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-9/igt@i915_selftest@live@workarounds.html
    - bat-dg2-11:         [DMESG-FAIL][83] ([i915#12061]) -> [DMESG-WARN][84] +1 other test dmesg-warn
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-11/igt@i915_selftest@live@workarounds.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-11/igt@i915_selftest@live@workarounds.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_lmem_swapping@basic:
    - bat-dg2-11:         [PASS][85] -> [DMESG-WARN][86] ([i915#14545])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-11/igt@gem_lmem_swapping@basic.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-11/igt@gem_lmem_swapping@basic.html
    - bat-dg2-14:         [PASS][87] -> [DMESG-WARN][88] ([i915#14545])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-14/igt@gem_lmem_swapping@basic.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-14/igt@gem_lmem_swapping@basic.html
    - bat-dg2-8:          [PASS][89] -> [DMESG-WARN][90] ([i915#14545])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-8/igt@gem_lmem_swapping@basic.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-8/igt@gem_lmem_swapping@basic.html
    - bat-dg1-7:          [PASS][91] -> [DMESG-WARN][92] ([i915#14545])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg1-7/igt@gem_lmem_swapping@basic.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg1-7/igt@gem_lmem_swapping@basic.html
    - bat-dg2-9:          [PASS][93] -> [DMESG-WARN][94] ([i915#14545])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-9/igt@gem_lmem_swapping@basic.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-9/igt@gem_lmem_swapping@basic.html
    - bat-dg1-6:          [PASS][95] -> [DMESG-WARN][96] ([i915#14545])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg1-6/igt@gem_lmem_swapping@basic.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg1-6/igt@gem_lmem_swapping@basic.html

  * igt@i915_selftest@live:
    - bat-dg2-8:          [PASS][97] -> [DMESG-FAIL][98] ([i915#12061]) +1 other test dmesg-fail
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-dg2-8/igt@i915_selftest@live.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-dg2-8/igt@i915_selftest@live.html

  * igt@i915_selftest@live@workarounds:
    - bat-arls-5:         [PASS][99] -> [DMESG-FAIL][100] ([i915#12061]) +1 other test dmesg-fail
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17481/bat-arls-5/igt@i915_selftest@live@workarounds.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/bat-arls-5/igt@i915_selftest@live@workarounds.html

  
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#14545]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14545


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

  * Linux: CI_DRM_17481 -> Patchwork_157001v1

  CI-20190529: 20190529
  CI_DRM_17481: 3512eb46a8d42c3deb477856c25d519b19a7d165 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8606: 7f516488d66a52df3b3027d5c02c5be298424b78 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_157001v1: 3512eb46a8d42c3deb477856c25d519b19a7d165 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v1/index.html

[-- Attachment #2: Type: text/html, Size: 20475 bytes --]

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

* ✗ i915.CI.BAT: failure for drm/i915: Use rcu_dereference() in hwsp_offset() (rev2)
  2025-11-04 11:33 [RFC PATCH] drm/i915: Use rcu_dereference() in hwsp_offset() Sebastian Brzezinka
  2025-11-04 11:42 ` Sebastian Brzezinka
  2025-11-05  1:59 ` ✗ i915.CI.BAT: failure for " Patchwork
@ 2025-11-19 10:29 ` Patchwork
  2025-11-19 15:58 ` [RFC PATCH] drm/i915: Use rcu_dereference() in hwsp_offset() Janusz Krzysztofik
  3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2025-11-19 10:29 UTC (permalink / raw)
  To: Sebastian Brzezinka; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 17978 bytes --]

== Series Details ==

Series: drm/i915: Use rcu_dereference() in hwsp_offset() (rev2)
URL   : https://patchwork.freedesktop.org/series/157001/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_17567 -> Patchwork_157001v2
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_157001v2 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_157001v2, please notify your bug team (I915-ci-infra@lists.freedesktop.org) 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_157001v2/index.html

Participating hosts (45 -> 44)
------------------------------

  Missing    (1): fi-snb-2520m 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_157001v2:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_module_load@load:
    - bat-dg2-13:         [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg2-13/igt@i915_module_load@load.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg2-13/igt@i915_module_load@load.html

  * igt@i915_pm_rpm@module-reload:
    - bat-dg2-14:         [PASS][3] -> [DMESG-WARN][4] +43 other tests dmesg-warn
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg2-14/igt@i915_pm_rpm@module-reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg2-14/igt@i915_pm_rpm@module-reload.html
    - fi-bsw-nick:        [PASS][5] -> [DMESG-WARN][6] +40 other tests dmesg-warn
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-bsw-nick/igt@i915_pm_rpm@module-reload.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-bsw-nick/igt@i915_pm_rpm@module-reload.html
    - bat-kbl-2:          [PASS][7] -> [DMESG-WARN][8] +40 other tests dmesg-warn
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-kbl-2/igt@i915_pm_rpm@module-reload.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-kbl-2/igt@i915_pm_rpm@module-reload.html
    - bat-adlp-6:         [PASS][9] -> [DMESG-WARN][10] +40 other tests dmesg-warn
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-adlp-6/igt@i915_pm_rpm@module-reload.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-adlp-6/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live@client:
    - bat-dg2-8:          [PASS][11] -> [DMESG-WARN][12] +43 other tests dmesg-warn
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg2-8/igt@i915_selftest@live@client.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg2-8/igt@i915_selftest@live@client.html
    - fi-kbl-guc:         [PASS][13] -> [DMESG-WARN][14] +40 other tests dmesg-warn
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-kbl-guc/igt@i915_selftest@live@client.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-kbl-guc/igt@i915_selftest@live@client.html
    - bat-adls-6:         [PASS][15] -> [DMESG-WARN][16] +40 other tests dmesg-warn
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-adls-6/igt@i915_selftest@live@client.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-adls-6/igt@i915_selftest@live@client.html

  * igt@i915_selftest@live@coherency:
    - bat-dg2-9:          [PASS][17] -> [DMESG-WARN][18] +41 other tests dmesg-warn
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg2-9/igt@i915_selftest@live@coherency.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg2-9/igt@i915_selftest@live@coherency.html
    - fi-kbl-x1275:       [PASS][19] -> [DMESG-WARN][20] +40 other tests dmesg-warn
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-kbl-x1275/igt@i915_selftest@live@coherency.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-kbl-x1275/igt@i915_selftest@live@coherency.html
    - bat-adlp-11:        [PASS][21] -> [DMESG-WARN][22] +40 other tests dmesg-warn
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-adlp-11/igt@i915_selftest@live@coherency.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-adlp-11/igt@i915_selftest@live@coherency.html

  * igt@i915_selftest@live@gem:
    - fi-rkl-11600:       [PASS][23] -> [DMESG-WARN][24] +40 other tests dmesg-warn
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-rkl-11600/igt@i915_selftest@live@gem.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-rkl-11600/igt@i915_selftest@live@gem.html

  * igt@i915_selftest@live@gem_contexts:
    - bat-arls-6:         [PASS][25] -> [DMESG-WARN][26] +40 other tests dmesg-warn
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-arls-6/igt@i915_selftest@live@gem_contexts.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-arls-6/igt@i915_selftest@live@gem_contexts.html
    - bat-arlh-3:         [PASS][27] -> [DMESG-WARN][28] +40 other tests dmesg-warn
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-arlh-3/igt@i915_selftest@live@gem_contexts.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-arlh-3/igt@i915_selftest@live@gem_contexts.html

  * igt@i915_selftest@live@gt_contexts:
    - bat-jsl-1:          [PASS][29] -> [DMESG-WARN][30] +40 other tests dmesg-warn
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-jsl-1/igt@i915_selftest@live@gt_contexts.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-jsl-1/igt@i915_selftest@live@gt_contexts.html

  * igt@i915_selftest@live@gt_engines:
    - bat-dg1-6:          [PASS][31] -> [DMESG-WARN][32] +43 other tests dmesg-warn
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg1-6/igt@i915_selftest@live@gt_engines.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg1-6/igt@i915_selftest@live@gt_engines.html

  * igt@i915_selftest@live@gt_heartbeat:
    - bat-rpls-4:         [PASS][33] -> [DMESG-WARN][34] +40 other tests dmesg-warn
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-rpls-4/igt@i915_selftest@live@gt_heartbeat.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-rpls-4/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@gt_mocs:
    - bat-twl-2:          [PASS][35] -> [DMESG-WARN][36] +40 other tests dmesg-warn
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-twl-2/igt@i915_selftest@live@gt_mocs.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-twl-2/igt@i915_selftest@live@gt_mocs.html

  * igt@i915_selftest@live@gt_pm:
    - fi-tgl-1115g4:      [PASS][37] -> [DMESG-WARN][38] +40 other tests dmesg-warn
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-tgl-1115g4/igt@i915_selftest@live@gt_pm.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-tgl-1115g4/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@gt_tlb:
    - bat-adlp-9:         [PASS][39] -> [DMESG-WARN][40] +40 other tests dmesg-warn
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-adlp-9/igt@i915_selftest@live@gt_tlb.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-adlp-9/igt@i915_selftest@live@gt_tlb.html

  * igt@i915_selftest@live@guc_multi_lrc:
    - bat-mtlp-8:         [PASS][41] -> [DMESG-WARN][42] +40 other tests dmesg-warn
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-mtlp-8/igt@i915_selftest@live@guc_multi_lrc.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-mtlp-8/igt@i915_selftest@live@guc_multi_lrc.html

  * igt@i915_selftest@live@hangcheck:
    - bat-atsm-1:         [PASS][43] -> [DMESG-WARN][44] +41 other tests dmesg-warn
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-atsm-1/igt@i915_selftest@live@hangcheck.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-atsm-1/igt@i915_selftest@live@hangcheck.html
    - bat-mtlp-9:         [PASS][45] -> [DMESG-WARN][46] +39 other tests dmesg-warn
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-mtlp-9/igt@i915_selftest@live@hangcheck.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-mtlp-9/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@hugepages:
    - fi-glk-j4005:       [PASS][47] -> [DMESG-WARN][48] +40 other tests dmesg-warn
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-glk-j4005/igt@i915_selftest@live@hugepages.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-glk-j4005/igt@i915_selftest@live@hugepages.html

  * igt@i915_selftest@live@late_gt_pm:
    - fi-kbl-8809g:       [PASS][49] -> [DMESG-WARN][50] +40 other tests dmesg-warn
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-kbl-8809g/igt@i915_selftest@live@late_gt_pm.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-kbl-8809g/igt@i915_selftest@live@late_gt_pm.html

  * igt@i915_selftest@live@objects:
    - fi-skl-6600u:       [PASS][51] -> [DMESG-WARN][52] +40 other tests dmesg-warn
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-skl-6600u/igt@i915_selftest@live@objects.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-skl-6600u/igt@i915_selftest@live@objects.html

  * igt@i915_selftest@live@perf:
    - bat-dg2-11:         [PASS][53] -> [DMESG-WARN][54] +41 other tests dmesg-warn
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg2-11/igt@i915_selftest@live@perf.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg2-11/igt@i915_selftest@live@perf.html

  * igt@i915_selftest@live@sanitycheck:
    - fi-kbl-7567u:       [PASS][55] -> [DMESG-WARN][56] +40 other tests dmesg-warn
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
    - bat-twl-1:          [PASS][57] -> [DMESG-WARN][58] +40 other tests dmesg-warn
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-twl-1/igt@i915_selftest@live@sanitycheck.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-twl-1/igt@i915_selftest@live@sanitycheck.html
    - bat-jsl-5:          [PASS][59] -> [DMESG-WARN][60] +40 other tests dmesg-warn
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-jsl-5/igt@i915_selftest@live@sanitycheck.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-jsl-5/igt@i915_selftest@live@sanitycheck.html
    - bat-apl-1:          [PASS][61] -> [DMESG-WARN][62] +40 other tests dmesg-warn
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-apl-1/igt@i915_selftest@live@sanitycheck.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-apl-1/igt@i915_selftest@live@sanitycheck.html
    - bat-arls-5:         [PASS][63] -> [DMESG-WARN][64] +38 other tests dmesg-warn
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-arls-5/igt@i915_selftest@live@sanitycheck.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-arls-5/igt@i915_selftest@live@sanitycheck.html
    - bat-rplp-1:         [PASS][65] -> [DMESG-WARN][66] +40 other tests dmesg-warn
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-rplp-1/igt@i915_selftest@live@sanitycheck.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-rplp-1/igt@i915_selftest@live@sanitycheck.html
    - bat-arlh-2:         [PASS][67] -> [DMESG-WARN][68] +40 other tests dmesg-warn
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-arlh-2/igt@i915_selftest@live@sanitycheck.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-arlh-2/igt@i915_selftest@live@sanitycheck.html

  * igt@i915_selftest@live@slpc:
    - fi-cfl-guc:         [PASS][69] -> [DMESG-WARN][70] +40 other tests dmesg-warn
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-cfl-guc/igt@i915_selftest@live@slpc.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-cfl-guc/igt@i915_selftest@live@slpc.html
    - bat-mtlp-6:         [PASS][71] -> [DMESG-WARN][72] +40 other tests dmesg-warn
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-mtlp-6/igt@i915_selftest@live@slpc.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-mtlp-6/igt@i915_selftest@live@slpc.html

  * igt@i915_selftest@live@uncore:
    - bat-dg1-7:          [PASS][73] -> [DMESG-WARN][74] +43 other tests dmesg-warn
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg1-7/igt@i915_selftest@live@uncore.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg1-7/igt@i915_selftest@live@uncore.html

  * igt@i915_selftest@live@vma:
    - fi-cfl-8700k:       [PASS][75] -> [DMESG-WARN][76] +40 other tests dmesg-warn
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-cfl-8700k/igt@i915_selftest@live@vma.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-cfl-8700k/igt@i915_selftest@live@vma.html

  * igt@i915_selftest@live@workarounds:
    - fi-bsw-n3050:       [PASS][77] -> [DMESG-WARN][78] +40 other tests dmesg-warn
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/fi-bsw-n3050/igt@i915_selftest@live@workarounds.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/fi-bsw-n3050/igt@i915_selftest@live@workarounds.html

  
#### Warnings ####

  * igt@i915_selftest@live@workarounds:
    - bat-arls-5:         [DMESG-FAIL][79] ([i915#12061]) -> [DMESG-WARN][80] +1 other test dmesg-warn
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-arls-5/igt@i915_selftest@live@workarounds.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-arls-5/igt@i915_selftest@live@workarounds.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_lmem_swapping@basic:
    - bat-dg2-11:         [PASS][81] -> [DMESG-WARN][82] ([i915#14545])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg2-11/igt@gem_lmem_swapping@basic.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg2-11/igt@gem_lmem_swapping@basic.html
    - bat-dg2-14:         [PASS][83] -> [DMESG-WARN][84] ([i915#14545])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg2-14/igt@gem_lmem_swapping@basic.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg2-14/igt@gem_lmem_swapping@basic.html
    - bat-dg2-8:          [PASS][85] -> [DMESG-WARN][86] ([i915#14545])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg2-8/igt@gem_lmem_swapping@basic.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg2-8/igt@gem_lmem_swapping@basic.html
    - bat-dg1-7:          [PASS][87] -> [DMESG-WARN][88] ([i915#14545])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg1-7/igt@gem_lmem_swapping@basic.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg1-7/igt@gem_lmem_swapping@basic.html
    - bat-dg2-9:          [PASS][89] -> [DMESG-WARN][90] ([i915#14545])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg2-9/igt@gem_lmem_swapping@basic.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg2-9/igt@gem_lmem_swapping@basic.html
    - bat-dg1-6:          [PASS][91] -> [DMESG-WARN][92] ([i915#14545])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-dg1-6/igt@gem_lmem_swapping@basic.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-dg1-6/igt@gem_lmem_swapping@basic.html

  
#### Warnings ####

  * igt@i915_selftest@live:
    - bat-atsm-1:         [DMESG-FAIL][93] ([i915#12061] / [i915#14204]) -> [DMESG-FAIL][94] ([i915#12061] / [i915#13929])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-atsm-1/igt@i915_selftest@live.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-atsm-1/igt@i915_selftest@live.html

  * igt@i915_selftest@live@mman:
    - bat-atsm-1:         [DMESG-FAIL][95] ([i915#14204]) -> [DMESG-FAIL][96] ([i915#13929])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17567/bat-atsm-1/igt@i915_selftest@live@mman.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/bat-atsm-1/igt@i915_selftest@live@mman.html

  
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#13929]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13929
  [i915#14204]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14204
  [i915#14545]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14545


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

  * Linux: CI_DRM_17567 -> Patchwork_157001v2

  CI-20190529: 20190529
  CI_DRM_17567: 80939f90d3e68b92b868017ea450e6695f756666 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8632: bbd6b1e5161ad8d244042f4a0d9fefcd575ccf67 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_157001v2: 80939f90d3e68b92b868017ea450e6695f756666 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_157001v2/index.html

[-- Attachment #2: Type: text/html, Size: 20064 bytes --]

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

* Re: [RFC PATCH] drm/i915: Use rcu_dereference() in hwsp_offset()
  2025-11-04 11:33 [RFC PATCH] drm/i915: Use rcu_dereference() in hwsp_offset() Sebastian Brzezinka
                   ` (2 preceding siblings ...)
  2025-11-19 10:29 ` ✗ i915.CI.BAT: failure for drm/i915: Use rcu_dereference() in hwsp_offset() (rev2) Patchwork
@ 2025-11-19 15:58 ` Janusz Krzysztofik
  3 siblings, 0 replies; 5+ messages in thread
From: Janusz Krzysztofik @ 2025-11-19 15:58 UTC (permalink / raw)
  To: intel-gfx, chris.p.wilson, andi.shyti, krzysztof.karas,
	krzysztof.niemiec, sebastian.brzezinka
  Cc: chris.p.wilson, andi.shyti, krzysztof.karas, krzysztof.niemiec,
	Sebastian Brzezinka, Sebastian Brzezinka

Hi Sebastian,

On Tuesday, 4 November 2025 12:33:38 CET Sebastian Brzezinka wrote:
> Replace rcu_dereference_protected() with rcu_dereference() in
> hwsp_offset() since the function is called within an RCU read-side
> critical section. Using rcu_dereference() avoids unnecessary
> protection checks and aligns with correct RCU usage patterns.
> 
> Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
> ---
> I noticed that the current implementation of hwsp_offset() uses rcu_dereference_protected()
> when accessing rq->timeline. This seems to be a slight misuse of the API.
> rcu_dereference_protected() is intended for updater-side code, where we are not holding
> rcu_read_lock() but instead rely on another lock that guarantees safety. The condition argument
> in this function acts more like an assertion that the caller holds the required lock.
> In our case, hwsp_offset() is called inside an RCU read-side critical section, which means
> the correct primitive is rcu_dereference(). The original intent of the condition argument
> seems to have been to guard against use-after-free scenarios for timeline(?). However,
> rcu_dereference_protected() does not enforce that, it simply returns the pointer regardless
> of i915_request_signaled(), and in rare cases this pattern has led to issues such as:
> https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15181
> '''
> ...
> <4> [281.246503] drivers/gpu/drm/i915/gt/gen8_engine_cs.c:427 suspicious rcu_dereference_protected() usage!
> <4> [281.246506]
> other info that might help us debug this:
> <4> [281.246507]
> rcu_scheduler_active = 2, debug_locks = 1
> <4> [281.246509] 5 locks held by gem_exec_whispe/2308:
> <4> [281.246511]  #0: ffffc90002ae77c8 (reservation_ww_class_acquire){+.+.}-{0:0}, at: i915_gem_do_execbuffer+0xd2c/0x3710 [i915]
> <4> [281.246852]  #1: ffffc90002ae77f0 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_gem_do_execbuffer+0xd2c/0x3710 [i915]
> <4> [281.247073]  #2: ffff8881e8a4a878 (&timeline->mutex){+.+.}-{3:3}, at: i915_request_create+0x61/0x200 [i915]
> <4> [281.247403]  #3: ffffffff83595560 (rcu_read_lock){....}-{1:2}, at: execlists_submission_tasklet+0x44/0x27b0 [i915]
> <4> [281.247592]  #4: ffff88812f0c2020 (&sched_engine->lock){-.-.}-{2:2}, at: execlists_submission_tasklet+0x20d/0x27b0 [i915]
> <4> [281.247787]
> stack backtrace:
> <4> [281.247789] CPU: 9 UID: 0 PID: 2308 Comm: gem_exec_whispe Tainted: G     U              6.17.0-CI_DRM_17306-gb3f121acbde4+ #1 PREEMPT(voluntary)
> <4> [281.247792] Tainted: [U]=USER
> <4> [281.247792] Hardware name: Intel Corporation Rocket Lake Client Platform/RocketLake S UDIMM 6L RVP, BIOS RKLSFWI1.R00.6062.A00.2502050210 02/05/2025
> <4> [281.247793] Call Trace:
> <4> [281.247794]  <IRQ>
> <4> [281.247796]  dump_stack_lvl+0x91/0xf0
> <4> [281.247802]  dump_stack+0x10/0x20
> <4> [281.247804]  lockdep_rcu_suspicious+0x151/0x1e0
> <4> [281.247811]  ? __i915_request_submit+0xb0/0x430 [i915]
> <4> [281.248010]  hwsp_offset+0x90/0xa0 [i915]
> <4> [281.248199]  gen12_emit_fini_breadcrumb_rcs+0xdf/0x480 [i915]
> <4> [281.248388]  ? __i915_request_submit+0xb0/0x430 [i915]
> <4> [281.248584]  __i915_request_submit+0x15b/0x430 [i915]
> <4> [281.248781]  execlists_submission_tasklet+0xdfa/0x27b0 [i915]
> <4> [281.248974]  ? mark_held_locks+0x46/0x90
> <4> [281.248982]  tasklet_action_common+0x166/0x410
> <4> [281.248988]  tasklet_hi_action+0x29/0x40
> <4> [281.248990]  handle_softirqs+0xd7/0x4d0
> <4> [281.248994]  ? __i915_request_queue+0x3f/0x80 [i915]
> <4> [281.249194]  __do_softirq+0x10/0x18
> <4> [281.249197]  do_softirq.part.0+0x47/0xd0
> ...
> '''
> 
> This issue reproduces very rarely, and I haven’t been able to reproduce it myself, so
> I’m not entirely sure why this scenario occurs why we attempt to emit a breadcrumb even
> when the request’s fence is already signaled. However, the correct approach seems to be:
>  - Drop the use of rcu_dereference_protected() in this context, since it’s not providing
>    real safety here.
>  - Avoid emitting a breadcrumb at all when the request is already signaled, as
>    doing so appears unnecessary.
> 
> My concern is that breadcrumbs seem to be emitted in __i915_request_submit, which appears
> to be well-guarded against processing retried requests. This leaves me puzzled about what’s
> actually happening here.
> ---
>  drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 3 +--
>  drivers/gpu/drm/i915/i915_request.c      | 2 +-
>  2 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
> index e9f65f27b53f..b799d423d306 100644
> --- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
> +++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
> @@ -424,8 +424,7 @@ static u32 hwsp_offset(const struct i915_request *rq)
>  	const struct intel_timeline *tl;
>  
>  	/* Before the request is executed, the timeline is fixed */
> -	tl = rcu_dereference_protected(rq->timeline,
> -				       !i915_request_signaled(rq));

Whether rcu_dereference_protected() was misused or not, my understanding 
is that rq->timeline shouldn't be dereferenced after the request has been 
signaled, because that means the request has been already executed and 
rq->timeline may have been already invalidated.  The complain from RCU 
lockdep here means just that, I believe: the request was found already 
signaled while it shouldn't, so the pointer should no longer be trusted.  
I think that's the issue you should focus on, and try to identify its 
root cause.

Thanks,
Janusz

> +	tl = rcu_dereference(rq->timeline);
>  
>  	/* See the comment in i915_request_active_seqno(). */
>  	return page_mask_bits(tl->hwsp_offset) + offset_in_page(rq->hwsp_seqno);
> diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
> index b9a2b2194c8f..25a9e574149e 100644
> --- a/drivers/gpu/drm/i915/i915_request.c
> +++ b/drivers/gpu/drm/i915/i915_request.c
> @@ -657,7 +657,7 @@ bool __i915_request_submit(struct i915_request *request)
>  	if (request->sched.semaphores &&
>  	    i915_sw_fence_signaled(&request->semaphore))
>  		engine->saturated |= request->sched.semaphores;
> -
> +	/*It seems that breadcrumbs are being emitted here.*/
>  	engine->emit_fini_breadcrumb(request,
>  				     request->ring->vaddr + request->postfix);
>  
> 





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

end of thread, other threads:[~2025-11-19 15:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-04 11:33 [RFC PATCH] drm/i915: Use rcu_dereference() in hwsp_offset() Sebastian Brzezinka
2025-11-04 11:42 ` Sebastian Brzezinka
2025-11-05  1:59 ` ✗ i915.CI.BAT: failure for " Patchwork
2025-11-19 10:29 ` ✗ i915.CI.BAT: failure for drm/i915: Use rcu_dereference() in hwsp_offset() (rev2) Patchwork
2025-11-19 15:58 ` [RFC PATCH] drm/i915: Use rcu_dereference() in hwsp_offset() Janusz Krzysztofik

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.