summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/msm_gpu.h
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2015-06-07 13:46:04 -0400
committerRob Clark <robdclark@gmail.com>2015-06-11 13:11:06 -0400
commit1a370be9ac51129e40b0ed7fa71d2b2b92bc47e5 (patch)
tree678bad05754937920c7d09fb66dd5a356ed9f172 /drivers/gpu/drm/msm/msm_gpu.h
parent56c2da8338d5cdfc0695eeed96ebe03cf2ac0321 (diff)
downloadlinux-1a370be9ac51129e40b0ed7fa71d2b2b92bc47e5.tar.gz
linux-1a370be9ac51129e40b0ed7fa71d2b2b92bc47e5.tar.bz2
linux-1a370be9ac51129e40b0ed7fa71d2b2b92bc47e5.zip
drm/msm: restart queued submits after hang
Track the list of in-flight submits. If the gpu hangs, retire up to an including the offending submit, and then re-submit the remainder. This way, for concurrently running piglit tests (for example), one failing test doesn't cause unrelated tests to fail simply because it's submit was queued up after one that triggered a hang. Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gpu.h')
-rw-r--r--drivers/gpu/drm/msm/msm_gpu.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_gpu.h b/drivers/gpu/drm/msm/msm_gpu.h
index 7b3ec21d5d77..2bbe85a3d6f6 100644
--- a/drivers/gpu/drm/msm/msm_gpu.h
+++ b/drivers/gpu/drm/msm/msm_gpu.h
@@ -119,6 +119,8 @@ struct msm_gpu {
struct timer_list hangcheck_timer;
uint32_t hangcheck_fence;
struct work_struct recover_work;
+
+ struct list_head submit_list;
};
static inline bool msm_gpu_active(struct msm_gpu *gpu)