From: John Harrison <John.C.Harrison@xxxxxxxxx> GPU page faults can now require scheduler operation in order to complete. For example, in order to free up sufficient memory to handle the fault the handler must wait for a batch buffer to complete that has not even been sent to the hardware yet. Thus EAGAIN no longer means a GPU hang, it can occur under normal operation. --- drivers/gpu/drm/i915/i915_gem.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 5ed5f66..aa1e0b2 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -1622,10 +1622,16 @@ out: } case -EAGAIN: /* - * EAGAIN means the gpu is hung and we'll wait for the error - * handler to reset everything when re-faulting in + * EAGAIN can mean the gpu is hung and we'll have to wait for + * the error handler to reset everything when re-faulting in * i915_mutex_lock_interruptible. + * + * It can also indicate various other nonfatal errors for which + * the best response is to give other threads a chance to run, + * and then retry the failing operation in its entirety. */ + set_need_resched(); + /*FALLTHRU*/ case 0: case -ERESTARTSYS: case -EINTR: -- 1.7.9.5 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx