]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i915/selftests: Hold rpm wakeref for request + ggtt usage
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 23 Nov 2017 23:37:12 +0000 (23:37 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 24 Nov 2017 09:10:58 +0000 (09:10 +0000)
Since the removal of the delayed rc6 enabling, we now setup and drop the
early rpm wakeref during modules initialisation before we start the live
selftests. As such, we are now detecting errors in the tests where we
were not holding the required wakeref for various actions. As rpm is not
the primary goal of the tests involved, take a coarse and convenient rpm
wakeref around the tests.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171123233712.21836-1-chris@chris-wilson.co.uk
Reviewed-by: Matthew Auld <matthew.william.auld@gmail.com>
drivers/gpu/drm/i915/selftests/huge_pages.c
drivers/gpu/drm/i915/selftests/i915_gem_evict.c

index df1befe2c79389a60567a8af7473ab34776da59e..e6b31041cc881ecc0235508ad0d11698a4bddc49 100644 (file)
@@ -1749,6 +1749,7 @@ int i915_gem_huge_page_live_selftests(struct drm_i915_private *dev_priv)
                return PTR_ERR(file);
 
        mutex_lock(&dev_priv->drm.struct_mutex);
+       intel_runtime_pm_get(dev_priv);
 
        ctx = live_context(dev_priv, file);
        if (IS_ERR(ctx)) {
@@ -1759,6 +1760,7 @@ int i915_gem_huge_page_live_selftests(struct drm_i915_private *dev_priv)
        err = i915_subtests(tests, ctx);
 
 out_unlock:
+       intel_runtime_pm_put(dev_priv);
        mutex_unlock(&dev_priv->drm.struct_mutex);
 
        mock_file_free(dev_priv, file);
index f463105ff48dced7eb787b059f03e87671fd3a22..e1ddad635d73e0ceaf4615ddf6a22dd53a70bc6e 100644 (file)
@@ -355,6 +355,7 @@ static int igt_evict_contexts(void *arg)
                return 0;
 
        mutex_lock(&i915->drm.struct_mutex);
+       intel_runtime_pm_get(i915);
 
        /* Reserve a block so that we know we have enough to fit a few rq */
        memset(&hole, 0, sizeof(hole));
@@ -463,6 +464,7 @@ static int igt_evict_contexts(void *arg)
        }
        if (drm_mm_node_allocated(&hole))
                drm_mm_remove_node(&hole);
+       intel_runtime_pm_put(i915);
        mutex_unlock(&i915->drm.struct_mutex);
 
        return err;