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 <ch...@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
Cc: Matthew Auld <matthew.a...@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.ursu...@intel.com>

Regards,

Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to