path: root/Documentation/gpu
diff options
authorDaniel Vetter <>2021-01-22 14:36:23 +0100
committerMaarten Lankhorst <>2021-02-09 17:16:57 +0100
commite2e2e008f96e074abf29c5f76ed7d00ea73593ec (patch)
tree5b6e5bb0ef4b1bae118ba1114c82f0cbb029b07a /Documentation/gpu
parentb9377df12114e61cb86d6470a43028b36f3e0eb6 (diff)
drm/todo: Add entry for moving to dma_resv_lock
Requested by Thomas. I think it justifies a new level, since I tried to make some forward progress on this last summer, and gave up (for now). This is very tricky. Acked-by: Thomas Zimmermann <> Signed-off-by: Daniel Vetter <> Cc: Maarten Lankhorst <> Cc: Maxime Ripard <> Cc: Thomas Zimmermann <> Cc: David Airlie <> Cc: Daniel Vetter <> Cc: Sumit Semwal <> Cc: "Christian K├Ânig" <> Cc: Cc: Link: (cherry picked from commit 5823cca39d585e4b4a32b1292eed0015da9c3276) Signed-off-by: Maarten Lankhorst <>
Diffstat (limited to 'Documentation/gpu')
1 files changed, 19 insertions, 0 deletions
diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
index 009d8e6c7e3c..77fbfe93df56 100644
--- a/Documentation/gpu/todo.rst
+++ b/Documentation/gpu/todo.rst
@@ -23,6 +23,9 @@ Advanced: Tricky tasks that need fairly good understanding of the DRM subsystem
and graphics topics. Generally need the relevant hardware for development and
+Expert: Only attempt these if you've successfully completed some tricky
+refactorings already and are an expert in the specific area
Subsystem-wide refactorings
@@ -168,6 +171,22 @@ Contact: Daniel Vetter, respective driver maintainers
Level: Advanced
+Move Buffer Object Locking to dma_resv_lock()
+Many drivers have their own per-object locking scheme, usually using
+mutex_lock(). This causes all kinds of trouble for buffer sharing, since
+depending which driver is the exporter and importer, the locking hierarchy is
+To solve this we need one standard per-object locking mechanism, which is
+dma_resv_lock(). This lock needs to be called as the outermost lock, with all
+other driver specific per-object locks removed. The problem is tha rolling out
+the actual change to the locking contract is a flag day, due to struct dma_buf
+buffer sharing.
+Level: Expert
Convert logging to drm_* functions with drm_device paramater