On 7/17/23 12:00, Donald Robson wrote:
Hi Danilo,
The below part of the documentation is out of date now.
Thanks,
Donald
Thanks Donald for pointing this out.
If there aren't any further objections in general I will fix up the
comment and then push the GPUVA Manager parts of the series to
drm-misc-next.
- Danilo
On Thu, 2023-07-13 at 19:03 +0200, Danilo Krummrich wrote:
+
+/**
+ * DOC: Locking
+ *
+ * Generally, the GPU VA manager does not take care of locking itself, it is
+ * the drivers responsibility to take care about locking. Drivers might want to
+ * protect the following operations: inserting, removing and iterating
+ * &drm_gpuva objects as well as generating all kinds of operations, such as
+ * split / merge or prefetch.
+ *
+ * The GPU VA manager also does not take care of the locking of the backing
+ * &drm_gem_object buffers GPU VA lists by itself; drivers are responsible to
+ * enforce mutual exclusion using either the GEMs dma_resv lock or alternatively
+ * a driver specific external lock by setting the @DRM_GPUVA_MANAGER_LOCK_EXTERN
+ * flag.
+ *
+ * For the latter, functions such as drm_gpuva_link() or drm_gpuva_unlink()
+ * contain lockdep checks to indicate locking issues. For this to work drivers
+ * must provide (in case the @DRM_GPUVA_MANAGER_LOCK_EXTERN flag is set) their
+ * external lock with drm_gpuva_manager_set_ext_lock() after initialization.
+ */