Skip to content

Commit c636ae3

Browse files
committed
accel/ivpu: Trigger recovery on TDR with OS scheduling
With OS scheduling mode the driver cannot determine which context caused the timeout, so context abort cannot be used. Instead of queuing context_abort_work, directly trigger full device recovery when a job timeout (TDR) occurs in OS scheduling mode. Fixes: ade00a6 ("accel/ivpu: Perform engine reset instead of device recovery on TDR") Reviewed-by: Jeff Hugo <[email protected]> Reviewed-by: Lizhi Hou <[email protected]> Signed-off-by: Karol Wachowski <[email protected]> Link: https://patch.msgid.link/[email protected]
1 parent 6fdfd24 commit c636ae3

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

drivers/accel/ivpu/ivpu_pm.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,12 @@ static void ivpu_job_timeout_work(struct work_struct *work)
221221

222222
abort:
223223
atomic_set(&vdev->job_timeout_counter, 0);
224+
225+
if (vdev->fw->sched_mode == VPU_SCHEDULING_MODE_OS) {
226+
ivpu_pm_trigger_recovery(vdev, "Job timeout");
227+
return;
228+
}
229+
224230
ivpu_jsm_state_dump(vdev);
225231
ivpu_dev_coredump(vdev);
226232
queue_work(system_percpu_wq, &vdev->context_abort_work);

0 commit comments

Comments
 (0)