[Intel-gfx] [PATCH] drm/i915: Skip idling an idle engine
Chris Wilson
chris at chris-wilson.co.uk
Tue May 24 10:56:17 UTC 2016
During suspend (or module unload), if we have never accessed the engine
(i.e. userspace never submitted a batch to it), the engine is idle. Then
we attempt to idle the engine by forcing it to the default context,
which actually means we submit a render batch to setup the golden
context state and then wait for it to complete. We can skip this
entirely as we know the engine is idle.
Testcase: igt/drm_module_reload_basic #byt
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95634
---
drivers/gpu/drm/i915/i915_gem.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index b3c15698d611..8fb4fe6ae98c 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3428,6 +3428,9 @@ int i915_gpu_idle(struct drm_device *dev)
/* Flush everything onto the inactive list. */
for_each_engine(engine, dev_priv) {
+ if (engine->last_context == NULL)
+ continue;
+
if (!i915.enable_execlists) {
struct drm_i915_gem_request *req;
--
2.8.1
More information about the Intel-gfx
mailing list