Message ID | 20210717202924.987514-1-robdclark@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | drm/msm: drm scheduler conversion and cleanups | expand |
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. 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(-) >
On Mon, Jul 19, 2021 at 1:40 AM Christian König <ckoenig.leichtzumerken@gmail.com> 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. > > Only problem is that I only see patch 7 and 9 in my inbox. Where is the > rest? Hmm, looks like it should have all gotten to dri-devel: https://lists.freedesktop.org/archives/dri-devel/2021-July/315573.html or if you prefer patchwork: https://patchwork.freedesktop.org/series/92680/ BR, -R > 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(-) > > >
Am 19.07.21 um 16:21 schrieb Rob Clark: > On Mon, Jul 19, 2021 at 1:40 AM Christian König > <ckoenig.leichtzumerken@gmail.com> 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. >> >> Only problem is that I only see patch 7 and 9 in my inbox. Where is the >> rest? > Hmm, looks like it should have all gotten to dri-devel: > > https://lists.freedesktop.org/archives/dri-devel/2021-July/315573.html Well I've got two mail accounts (AMD, GMail) and neither of them sees the full set. So most likely not a problem on my side. Anyway the whole set is Acked-by: Christian König <christian.koenig@amd.com>. Regards, Christian. > > or if you prefer patchwork: > > https://patchwork.freedesktop.org/series/92680/ > > BR, > -R > >> 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(-) >>>
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. 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(-) > > >
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. 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(-) >>>
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(-) > > > > >
From: Rob Clark <robdclark@chromium.org> Conversion to gpu_scheduler, and bonus removal of drm_gem_object_put_locked() 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(-)