This reverts commit e6c6338f393b74ac0b303d567bb918b44ae7ad75. This feature basically re-submits one job after another to figure out which one was the one causing a hang. This is obviously incompatible with gang-submit which requires that multiple jobs run at the same time. It's also absolutely not helpful to crash the hardware multiple times if a clean recovery is desired. For testing and debugging environments we should rather disable recovery alltogether to be able to inspect the state with a hw debugger. Additional to that the sw implementation is clearly buggy and causes reference count issues for the hardware fence.
Showing the changes to include/drm (1 of 4 files). Show all
Unified · Split
| @@ -528,10 +528,7 @@ void drm_sched_wakeup(struct drm_gpu_scheduler *sched); · 527 unmodified lines | |||
| 528 | void drm_sched_stop(struct drm_gpu_scheduler *sched, struct drm_sched_job *bad); | 528 | void drm_sched_stop(struct drm_gpu_scheduler *sched, struct drm_sched_job *bad); |
| 529 | void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery); | 529 | void drm_sched_start(struct drm_gpu_scheduler *sched, bool full_recovery); |
| 530 | void drm_sched_resubmit_jobs(struct drm_gpu_scheduler *sched); | 530 | void drm_sched_resubmit_jobs(struct drm_gpu_scheduler *sched); |
| 531 | void drm_sched_resubmit_jobs_ext(struct drm_gpu_scheduler *sched, int max); | ||
| 532 | void drm_sched_increase_karma(struct drm_sched_job *bad); | 531 | void drm_sched_increase_karma(struct drm_sched_job *bad); |
| 533 | void drm_sched_reset_karma(struct drm_sched_job *bad); | ||
| 534 | void drm_sched_increase_karma_ext(struct drm_sched_job *bad, int type); | ||
| 535 | bool drm_sched_dependency_optimized(struct dma_fence* fence, | 532 | bool drm_sched_dependency_optimized(struct dma_fence* fence, |
| 536 | struct drm_sched_entity *entity); | 533 | struct drm_sched_entity *entity); |
| 537 | void drm_sched_fault(struct drm_gpu_scheduler *sched); | 534 | void drm_sched_fault(struct drm_gpu_scheduler *sched); |