OSDN Git Service

drm/i915/selftests: Disable shrinker across mmap-exhaustion
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 11 Oct 2018 10:37:48 +0000 (11:37 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 11 Oct 2018 15:04:09 +0000 (16:04 +0100)
For mmap-exhaustion, we deliberately put the system under a large amount
of pressure to ensure that we are able to reap mmap-offsets from dead
objects. If background activity does that reaping for us, that defeats
the purpose of the test and in some cases will fail our sanity checks
(because of the fake activity we use to prevent the idle worker).

Fixes: 932cac10c8fb ("drm/i915/selftests: Prevent background reaping of acti
ve objects")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181011103748.18387-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/selftests/i915_gem_object.c

index 6d3516d..c3999dd 100644 (file)
@@ -501,6 +501,8 @@ static bool assert_mmap_offset(struct drm_i915_private *i915,
 
 static void disable_retire_worker(struct drm_i915_private *i915)
 {
+       i915_gem_shrinker_unregister(i915);
+
        mutex_lock(&i915->drm.struct_mutex);
        if (!i915->gt.active_requests++) {
                intel_runtime_pm_get(i915);
@@ -613,6 +615,7 @@ out_park:
        else
                queue_delayed_work(i915->wq, &i915->gt.idle_work, 0);
        mutex_unlock(&i915->drm.struct_mutex);
+       i915_gem_shrinker_register(i915);
        return err;
 err_obj:
        i915_gem_object_put(obj);