OSDN Git Service

drm/scheduler: avoid infinite loop if entity's dependency is a scheduled error fence
authorZhenGuo Yin <zhenguo.yin@amd.com>
Tue, 9 May 2023 09:46:17 +0000 (17:46 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 15 Jun 2023 15:37:55 +0000 (11:37 -0400)
commit4f9b94d848696166011bead3109541ec2a523bb8
treec4e002f9c3fe77a5fb9e1379368f73fc61d9f181
parent71eaac368dccf0619f7adc012063930e459b133e
drm/scheduler: avoid infinite loop if entity's dependency is a scheduled error fence

[Why]
drm_sched_entity_add_dependency_cb ignores the scheduled fence and return false.
If entity's dependency is a scheduler error fence and drm_sched_stop is called
due to TDR, drm_sched_entity_pop_job will wait for the dependency infinitely.

[How]
Do not wait or ignore the scheduled error fence, add drm_sched_entity_wakeup
callback for the dependency with scheduled error fence.

Signed-off-by: ZhenGuo Yin <zhenguo.yin@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/scheduler/sched_entity.c