struct drm_sched_rq is not being locked at many places throughout the
scheduler, at least for readers. This was documented in a FIXME added
in:
commit 981b04d96856 ("drm/sched: improve docs around drm_sched_entity")
Add a TODO entry for that problem.
Signed-off-by: Philipp Stanner <[email protected]>
---
drivers/gpu/drm/scheduler/TODO | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/gpu/drm/scheduler/TODO b/drivers/gpu/drm/scheduler/TODO
index 713dd62c58da..263ce2deb69a 100644
--- a/drivers/gpu/drm/scheduler/TODO
+++ b/drivers/gpu/drm/scheduler/TODO
@@ -36,3 +36,16 @@
3. Port a driver as first user.
3. Document the new alternative in the docu of deprecated
drm_sched_resubmit_jobs().
+
+* Unlocked readers for runqueues
+ - Difficulty: medium
+ - Contact: Philipp Stanner <[email protected]>
+ - Description:
+ There is an old FIXME by Sima in include/drm/gpu_scheduler.h. It details
+ that struct drm_sched_rq is read at many places without any locks, not even
+ with a READ_ONCE. At XDC 2025 no one could really tell why that is the
case,
+ whether locks are needed and whether they could be added. (But for real,
+ that should probably be locked!).
+ - Tasks:
+ 1. Check whether locks for runqueue readers can be added.
+ 2. If yes, add the locks.
--
2.49.0