[Intel-gfx] [PATCH 13/30] drm/i915/gem: Retire directly for mmap-offset shrinking

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Wed Oct 2 15:53:52 UTC 2019


On 02/10/2019 12:19, Chris Wilson wrote:
> Now that we can retire without taking struct_mutex, we can do so to
> handle shrinking the mmap-offset space after an allocation failure.
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> Cc: Matthew Auld <matthew.auld at intel.com>
> ---
>   drivers/gpu/drm/i915/gem/i915_gem_mman.c | 17 +++++------------
>   1 file changed, 5 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
> index 418d0d2b5fa9..45bbd22c14f1 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
> @@ -431,19 +431,12 @@ static int create_mmap_offset(struct drm_i915_gem_object *obj)
>   		return 0;
>   
>   	/* Attempt to reap some mmap space from dead objects */
> -	do {
> -		err = i915_gem_wait_for_idle(i915, MAX_SCHEDULE_TIMEOUT);
> -		if (err)
> -			break;
> +	err = i915_retire_requests_timeout(i915, MAX_SCHEDULE_TIMEOUT);
> +	if (err)
> +		return err;
>   
> -		i915_gem_drain_freed_objects(i915);
> -		err = drm_gem_create_mmap_offset(&obj->base);
> -		if (!err)
> -			break;
> -
> -	} while (flush_delayed_work(&i915->gem.retire_work));
> -
> -	return err;
> +	i915_gem_drain_freed_objects(i915);
> +	return drm_gem_create_mmap_offset(&obj->base);
>   }
>   
>   int
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko


More information about the Intel-gfx mailing list