Commit 15f7776
drm/sched: Remove optimization that causes hang when killing dependent jobs
When application A submits jobs and application B submits a job with a
dependency on A's fence, the normal flow wakes up the scheduler after
processing each job. However, the optimization in
drm_sched_entity_add_dependency_cb() uses a callback that only clears
dependencies without waking up the scheduler.
When application A is killed before its jobs can run, the callback gets
triggered but only clears the dependency without waking up the scheduler,
causing the scheduler to enter sleep state and application B to hang.
Remove the optimization by deleting drm_sched_entity_clear_dep() and its
usage, ensuring the scheduler is always woken up when dependencies are
cleared.
Fixes: 777dbd4 ("drm/amdgpu: drop a dummy wakeup scheduler")
Cc: [email protected] # v4.6+
Signed-off-by: Lin.Cao <[email protected]>
Reviewed-by: Christian König <[email protected]>
Signed-off-by: Philipp Stanner <[email protected]>
Link: https://lore.kernel.org/r/[email protected]1 parent 95a1616 commit 15f7776
1 file changed
+2
-19
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
355 | 355 | | |
356 | 356 | | |
357 | 357 | | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
365 | | - | |
366 | | - | |
367 | | - | |
368 | | - | |
369 | 358 | | |
370 | 359 | | |
371 | 360 | | |
| |||
376 | 365 | | |
377 | 366 | | |
378 | 367 | | |
379 | | - | |
| 368 | + | |
| 369 | + | |
380 | 370 | | |
381 | 371 | | |
382 | 372 | | |
| |||
429 | 419 | | |
430 | 420 | | |
431 | 421 | | |
432 | | - | |
433 | | - | |
434 | | - | |
435 | | - | |
436 | | - | |
437 | | - | |
438 | | - | |
439 | 422 | | |
440 | 423 | | |
441 | 424 | | |
| |||
0 commit comments