drm/i915/gem: Refine occupancy test in kill_context()
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 31 Oct 2019 09:01:04 +0000 (09:01 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 1 Nov 2019 09:44:48 +0000 (09:44 +0000)
commit4a3174152147da1159f7135e90e1831fba74da34
treecc2788285ac7ab1053c9d8b55e5a25fa6e4e85f1
parent2b73b3503b0a1393ff1e4a214a3f815d2c6dbffb
drm/i915/gem: Refine occupancy test in kill_context()

Don't just look at the very last request in a queue when deciding if we
need to evict the context from the GPU, as that request may still be in
the submission queue while the rest of the context is running!

Instead, walk back along the queued requests looking for the active
request and checking that.

Fixes: 2e0986a58cc4 ("drm/i915/gem: Cancel contexts when hangchecking is disabled")
Testcase: igt/gem_ctx_persistence/queued
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191031090104.22245-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gem/i915_gem_context.c