There are several issues with preemption on Adreno A5XX GPUs which render system unusable if more than one priority level is used. Those issues include persistent GPU faults and hangs, full UI lockups with idling GPU. --- Changes in v2: - Use spinlock to serialize preemption initiation in patch 3 - Added Reviewed-by on patch 2 --- Vladimir Lypak (4): drm/msm/a5xx: disable preemption in submits by default drm/msm/a5xx: properly clear preemption records on resume drm/msm/a5xx: fix races in preemption evaluation stage drm/msm/a5xx: workaround early ring-buffer emptiness check drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 12 +++++++-- drivers/gpu/drm/msm/adreno/a5xx_gpu.h | 2 ++ drivers/gpu/drm/msm/adreno/a5xx_preempt.c | 30 +++++++++++++++++++++-- 3 files changed, 40 insertions(+), 4 deletions(-) --- base-commit: 985bf40edf4343dcb04c33f58b40b4a85c1776d4 -- 2.46.0