[Intel-gfx] [PATCH] drm/i915/selftests: Disable shrinker across mmap-exhaustion

Mika Kuoppala mika.kuoppala at linux.intel.com
Thu Oct 11 13:56:42 UTC 2018


Chris Wilson <chris at chris-wilson.co.uk> writes:

> 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).
>

mark_obj_busy will both pin and mark the object as active. And we
have disabled the retire worker. So how can an active object
end up being purged?

-Mika

> Fixes: 932cac10c8fb ("drm/i915/selftests: Prevent background reaping of acti
> ve objects")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> Cc: Matthew Auld <matthew.auld at intel.com>
> ---
>  drivers/gpu/drm/i915/selftests/i915_gem_object.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_object.c b/drivers/gpu/drm/i915/selftests/i915_gem_object.c
> index 6d3516d5bff9..c3999dd2021e 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_gem_object.c
> +++ b/drivers/gpu/drm/i915/selftests/i915_gem_object.c
> @@ -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 @@ static int igt_mmap_offset_exhaustion(void *arg)
>  	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);
> -- 
> 2.19.1


More information about the Intel-gfx mailing list