• Daniel Vetter's avatar
    drm/sched: Split drm_sched_job_init · dbe48d03
    Daniel Vetter authored
    This is a very confusingly named function, because not just does it
    init an object, it arms it and provides a point of no return for
    pushing a job into the scheduler. It would be nice if that's a bit
    clearer in the interface.
    
    But the real reason is that I want to push the dependency tracking
    helpers into the scheduler code, and that means drm_sched_job_init
    must be called a lot earlier, without arming the job.
    
    v2:
    - don't change .gitignore (Steven)
    - don't forget v3d (Emma)
    
    v3: Emma noticed that I leak the memory allocated in
    drm_sched_job_init if we bail out before the point of no return in
    subsequent driver patches. To be able to fix this change
    drm_sched_job_cleanup() so it can handle being called both before and
    after drm_sched_job_arm().
    
    Also improve the kerneldoc for this.
    
    v4:
    - Fix the drm_sched_job_cleanup logic, I inverted the booleans, as
      usual (Melissa)
    
    - Christian pointed out that drm_sched_entity_select_rq() also needs
      to be moved into drm_sched_job_arm, which made me realize that the
      job->id definitely needs to be moved too.
    
      Shuffle things to fit between job_init and job_arm.
    
    v5:
    Reshuffle the split between init/arm once more, amdgpu abuses
    drm_sched.ready to signal gpu reset failures. Also document this
    somewhat. (Christian)
    
    v6:
    Rebase on top of the msm drm/sched support. Note that the
    drm_sched_job_init() call is completely misplaced, and hence also the
    split-out drm_sched_entity_push_job(). I've put in a FIXME which the next
    patch will address.
    
    v7: Drop the FIXME in msm, after discussions with Rob I agree it shouldn't
    be a problem where it is now.
    Acked-by: default avatarChristian König <christian.koenig@amd.com>
    Acked-by: default avatarMelissa Wen <mwen@igalia.com>
    Cc: Melissa Wen <melissa.srw@gmail.com>
    Acked-by: default avatarEmma Anholt <emma@anholt.net>
    Acked-by: Steven Price <steven.price@arm.com> (v2)
    Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> (v5)
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Cc: Lucas Stach <l.stach@pengutronix.de>
    Cc: Russell King <linux+etnaviv@armlinux.org.uk>
    Cc: Christian Gmeiner <christian.gmeiner@gmail.com>
    Cc: Qiang Yu <yuq825@gmail.com>
    Cc: Rob Herring <robh@kernel.org>
    Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
    Cc: Steven Price <steven.price@arm.com>
    Cc: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
    Cc: David Airlie <airlied@linux.ie>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: Sumit Semwal <sumit.semwal@linaro.org>
    Cc: "Christian König" <christian.koenig@amd.com>
    Cc: Masahiro Yamada <masahiroy@kernel.org>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Adam Borowski <kilobyte@angband.pl>
    Cc: Nick Terrell <terrelln@fb.com>
    Cc: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Cc: Paul Menzel <pmenzel@molgen.mpg.de>
    Cc: Sami Tolvanen <samitolvanen@google.com>
    Cc: Viresh Kumar <viresh.kumar@linaro.org>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: Dave Airlie <airlied@redhat.com>
    Cc: Nirmoy Das <nirmoy.das@amd.com>
    Cc: Deepak R Varma <mh12gx2825@gmail.com>
    Cc: Lee Jones <lee.jones@linaro.org>
    Cc: Kevin Wang <kevin1.wang@amd.com>
    Cc: Chen Li <chenli@uniontech.com>
    Cc: Luben Tuikov <luben.tuikov@amd.com>
    Cc: "Marek Olšák" <marek.olsak@amd.com>
    Cc: Dennis Li <Dennis.Li@amd.com>
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
    Cc: Sonny Jiang <sonny.jiang@amd.com>
    Cc: Boris Brezillon <boris.brezillon@collabora.com>
    Cc: Tian Tao <tiantao6@hisilicon.com>
    Cc: etnaviv@lists.freedesktop.org
    Cc: lima@lists.freedesktop.org
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Cc: Emma Anholt <emma@anholt.net>
    Cc: Rob Clark <robdclark@gmail.com>
    Cc: Sean Paul <sean@poorly.run>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: freedreno@lists.freedesktop.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20210817084917.3555822-1-daniel.vetter@ffwll.ch
    dbe48d03
sched_main.c 27.4 KB