drm/i915: Flush the switch-to-kernel-context harder for DROP_IDLE
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 7 May 2019 12:11:05 +0000 (13:11 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 7 May 2019 16:40:19 +0000 (17:40 +0100)
commitba0001657f95332302bc6494d80ef9fae4e80283
tree3d69376bf97f96fd69a0c2f0906c1ed4a18d5e2b
parent05d9c8783bb29ddcfeceb50fe21d5f5dc7c814ca
drm/i915: Flush the switch-to-kernel-context harder for DROP_IDLE

To complete the idle worker, we must complete 2 passes of wait-for-idle.
At the end of the first pass, we queue a switch-to-kernel-context and
may only idle after waiting for its completion. Speed up the flush_work
by doing the wait explicitly, which then allows us to remove the
unbounded loop trying to complete the flush_work in the next patch.

References: 79ffac8599c4 ("drm/i915: Invert the GEM wakeref hierarchy")
Testcase: igt/gem_ppgtt/flind-and-close-vma-leak
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190507121108.18377-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_debugfs.c