diff options
author | Chris Wilson | 2017-10-25 00:08:55 +0200 |
---|---|---|
committer | Chris Wilson | 2017-10-25 13:13:03 +0200 |
commit | 20ccd4d3f689ac14dce8632d76769be0ac952060 (patch) | |
tree | 434734b5ef5cecac5acf428f01b162a6e4673dcd /drivers/gpu/drm/i915/intel_engine_cs.c | |
parent | drm/i915/selftests: Don't try to queue a request with zero delay (diff) | |
download | kernel-qcow2-linux-20ccd4d3f689ac14dce8632d76769be0ac952060.tar.gz kernel-qcow2-linux-20ccd4d3f689ac14dce8632d76769be0ac952060.tar.xz kernel-qcow2-linux-20ccd4d3f689ac14dce8632d76769be0ac952060.zip |
drm/i915: Use same test for eviction and submitting kernel context
During evict, we wish to idle the GPU if we see that the GGTT is full.
However, our test for idle in i915_gem_evict_something() and in
i915_gem_switch_to_kernel_context() do not match leading to
disappointment - we never believe that we are idle and keep trying to
flush the GGTT ad infinitum.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103438
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171024220855.30155-2-chris@chris-wilson.co.uk
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_engine_cs.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_engine_cs.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c index ab5bf4e2e28e..f6cdc50d4237 100644 --- a/drivers/gpu/drm/i915/intel_engine_cs.c +++ b/drivers/gpu/drm/i915/intel_engine_cs.c @@ -1585,6 +1585,12 @@ bool intel_engines_are_idle(struct drm_i915_private *dev_priv) return true; } +bool intel_engine_has_kernel_context(const struct intel_engine_cs *engine) +{ + return (!engine->last_retired_context || + i915_gem_context_is_kernel(engine->last_retired_context)); +} + void intel_engines_reset_default_submission(struct drm_i915_private *i915) { struct intel_engine_cs *engine; |