drm/i915/execlists: Always clear ring_pause if we do not submit
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 24 Jun 2019 09:20:09 +0000 (10:20 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 24 Jun 2019 10:42:37 +0000 (11:42 +0100)
commit8db7933ee3d442627c716ee49a70fa3aef18640d
tree641a60ede14b59fad74a0a8c3bb1ef540ff59417
parentb2dbf8d982a4f02a00261a5f8f75d2f0bf765de4
drm/i915/execlists: Always clear ring_pause if we do not submit

In the unlikely case (thank you CI!), we may find ourselves wanting to
issue a preemption but having no runnable requests left. In this case,
we set the semaphore before computing the preemption and so must unset
it before forgetting (or else we leave the machine busywaiting until the
next request comes along and so likely hang).

v2: Replace readback with only a wmb after asserting the semaphore

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190624092009.30189-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_lrc.c