[Lima] [PATCH] drm/lima: fix sched context destroy

Christian König christian.koenig at amd.com
Wed Jun 7 09:20:55 UTC 2023


Acked-by: Christian König <christian.koenig at amd.com>

While you are at it: It's beneficial for drivers to implement the flush 
callback on the file descriptor.

This way you can still send a SIGKILL when a terminating application 
waits for the entity to be flushed out to the hardware and all the 
pending jobs are canceled.

Regards,
Christian.

Am 07.06.23 um 06:04 schrieb Qiang Yu:
> Reviewed-by: Qiang Yu <yuq825 at gmail.com>
>
> Applied to drm-misc-fixes.
>
> On Wed, Jun 7, 2023 at 9:18 AM Vasily Khoruzhick <anarsoul at gmail.com> wrote:
>> On Tue, Jun 6, 2023 at 7:33 AM Erico Nunes <nunes.erico at gmail.com> wrote:
>>> The drm sched entity must be flushed before finishing, to account for
>>> jobs potentially still in flight at that time.
>>> Lima did not do this flush until now, so switch the destroy call to the
>>> drm_sched_entity_destroy() wrapper which will take care of that.
>>>
>>> This fixes a regression on lima which started since the rework in
>>> commit 2fdb8a8f07c2 ("drm/scheduler: rework entity flush, kill and fini")
>>> where some specific types of applications may hang indefinitely.
>>>
>>> Fixes: 2fdb8a8f07c2 ("drm/scheduler: rework entity flush, kill and fini")
>>> Signed-off-by: Erico Nunes <nunes.erico at gmail.com>
>> Reviewed-by: Vasily Khoruzhick <anarsoul at gmail.com>
>>
>>> ---
>>>   drivers/gpu/drm/lima/lima_sched.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c
>>> index ff003403fbbc..ffd91a5ee299 100644
>>> --- a/drivers/gpu/drm/lima/lima_sched.c
>>> +++ b/drivers/gpu/drm/lima/lima_sched.c
>>> @@ -165,7 +165,7 @@ int lima_sched_context_init(struct lima_sched_pipe *pipe,
>>>   void lima_sched_context_fini(struct lima_sched_pipe *pipe,
>>>                               struct lima_sched_context *context)
>>>   {
>>> -       drm_sched_entity_fini(&context->base);
>>> +       drm_sched_entity_destroy(&context->base);
>>>   }
>>>
>>>   struct dma_fence *lima_sched_context_queue_task(struct lima_sched_task *task)
>>> --
>>> 2.40.1
>>>



More information about the dri-devel mailing list