diff mbox

drm/i915: Call cond_resched() before repeating i915_gem_evict_something()

Message ID 20171024205053.7845-1-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Chris Wilson Oct. 24, 2017, 8:50 p.m. UTC
Insert a breakpoint, a chance to escape back to the scheduler and run
something else for a bit, if we find that the GGTT is full and needs to
be idled in order to make some room. In practice, this should only be an
issue in stress tests as the wait itself will normally give the chance
for the scheduler to intervene and make progress.

References: https://bugs.freedesktop.org/show_bug.cgi?id=103438
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_gem_evict.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Joonas Lahtinen Oct. 25, 2017, 9:25 a.m. UTC | #1
On Tue, 2017-10-24 at 21:50 +0100, Chris Wilson wrote:
> Insert a breakpoint, a chance to escape back to the scheduler and run
> something else for a bit, if we find that the GGTT is full and needs to
> be idled in order to make some room. In practice, this should only be an
> issue in stress tests as the wait itself will normally give the chance
> for the scheduler to intervene and make progress.
> 
> References: https://bugs.freedesktop.org/show_bug.cgi?id=103438
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Regards, Joonas
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem_evict.c b/drivers/gpu/drm/i915/i915_gem_evict.c
index 8daa8a78cdc0..a6b769994d8d 100644
--- a/drivers/gpu/drm/i915/i915_gem_evict.c
+++ b/drivers/gpu/drm/i915/i915_gem_evict.c
@@ -216,6 +216,7 @@  i915_gem_evict_something(struct i915_address_space *vm,
 		if (ret)
 			return ret;
 
+		cond_resched();
 		goto search_again;
 	}