On Tue, Jul 20, 2021 at 04:16:56PM +0200, Christian König wrote:
Am 20.07.21 um 16:07 schrieb Daniel Vetter:
On Mon, Jul 19, 2021 at 10:40:57AM +0200, Christian König wrote:
Am 17.07.21 um 22:29 schrieb Rob Clark:
From: Rob Clark robdclark@chromium.org
Conversion to gpu_scheduler, and bonus removal of drm_gem_object_put_locked()
Oh yes please!
If I'm not completely mistaken that was the last puzzle piece missing to unify TTMs and GEMs refcount of objects.
Why does drm/msm, a driver not using ttm at all, block ttm refactorings? We can just check whether the TTM using driver is potentially using locked final unref and have a special version of drm_gem_object_put_guaranteed_unlocked or whatever the bikeshed will look like, which doesn't have the migth_lock.
Because we now don't have any unrealistic lock inversion between dev->struct_mutex and obj->resv lockdep can complain any more.
Yeah I know, but we didn't have that since a while ago if you're limiting the audit to ttm using drivers. Which are the only ones that matter for this, the only thing that caused issues was object_put still being dev->struct_mutex infested for backwards compat. But even that changed a while ago I think. -Daniel
Cheers, Christian.
Anyway, deed is done now :-) -Daniel
Only problem is that I only see patch 7 and 9 in my inbox. Where is the rest?
Thanks, Christian.
Rob Clark (11): drm/msm: Docs and misc cleanup drm/msm: Small submitqueue creation cleanup drm/msm: drop drm_gem_object_put_locked() drm: Drop drm_gem_object_put_locked() drm/msm/submit: Simplify out-fence-fd handling drm/msm: Consolidate submit bo state drm/msm: Track "seqno" fences by idr drm/msm: Return ERR_PTR() from submit_create() drm/msm: Conversion to drm scheduler drm/msm: Drop struct_mutex in submit path drm/msm: Utilize gpu scheduler priorities
drivers/gpu/drm/drm_gem.c | 22 -- drivers/gpu/drm/msm/Kconfig | 1 + drivers/gpu/drm/msm/adreno/a5xx_debugfs.c | 4 +- drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 6 +- drivers/gpu/drm/msm/adreno/a5xx_power.c | 2 +- drivers/gpu/drm/msm/adreno/a5xx_preempt.c | 7 +- drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 12 +- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 2 +- drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 4 +- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 6 +- drivers/gpu/drm/msm/msm_drv.c | 30 +- drivers/gpu/drm/msm/msm_fence.c | 39 --- drivers/gpu/drm/msm/msm_fence.h | 2 - drivers/gpu/drm/msm/msm_gem.c | 91 +----- drivers/gpu/drm/msm/msm_gem.h | 37 ++- drivers/gpu/drm/msm/msm_gem_submit.c | 300 ++++++++++++-------- drivers/gpu/drm/msm/msm_gpu.c | 50 +--- drivers/gpu/drm/msm/msm_gpu.h | 41 ++- drivers/gpu/drm/msm/msm_ringbuffer.c | 70 ++++- drivers/gpu/drm/msm/msm_ringbuffer.h | 12 + drivers/gpu/drm/msm/msm_submitqueue.c | 49 +++- include/drm/drm_gem.h | 2 - include/uapi/drm/msm_drm.h | 10 +- 23 files changed, 440 insertions(+), 359 deletions(-)