Commit 6313e78e authored by Chris Wilson's avatar Chris Wilson

drm/i915/selftests: Relax timeout for error-interrupt reset processing

We can not require that the system process a tasklet in reasonable time
(thanks be to ksoftirqd), but we can insist that having waited
sufficiently for the error interrupt to have been raised and having
kicked the tasklet, the reset has begun and the request will be marked
as in error (if not already completed).
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200210205722.794180-3-chris@chris-wilson.co.uk
parent 2fbfc595
...@@ -500,14 +500,21 @@ static int live_error_interrupt(void *arg) ...@@ -500,14 +500,21 @@ static int live_error_interrupt(void *arg)
} }
for (i = 0; i < ARRAY_SIZE(client); i++) { for (i = 0; i < ARRAY_SIZE(client); i++) {
if (i915_request_wait(client[i], 0, HZ / 5) < 0) { if (i915_request_wait(client[i], 0, HZ / 5) < 0)
pr_err("%s: %s request still executing!\n", pr_debug("%s: %s request incomplete!\n",
engine->name, engine->name,
error_repr(p->error[i])); error_repr(p->error[i]));
if (!i915_request_started(client[i])) {
pr_debug("%s: %s request not stated!\n",
engine->name,
error_repr(p->error[i]));
err = -ETIME; err = -ETIME;
goto out; goto out;
} }
/* Kick the tasklet to process the error */
intel_engine_flush_submission(engine);
if (client[i]->fence.error != p->error[i]) { if (client[i]->fence.error != p->error[i]) {
pr_err("%s: %s request completed with wrong error code: %d\n", pr_err("%s: %s request completed with wrong error code: %d\n",
engine->name, engine->name,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment