Chris Wilson <[email protected]> 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 <[email protected]>
> Cc: Mika Kuoppala <[email protected]>
> Cc: Matthew Auld <[email protected]>
> ---
>  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
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to