Commit 789ed955 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915/gem: Retire directly for mmap-offset shrinking



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: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191004134015.13204-11-chris@chris-wilson.co.uk
parent f33a8a51
Loading
Loading
Loading
Loading
+5 −12
Original line number Diff line number Diff line
@@ -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);
	err = i915_retire_requests_timeout(i915, MAX_SCHEDULE_TIMEOUT);
	if (err)
			break;
		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;
	return drm_gem_create_mmap_offset(&obj->base);
}

int