Skip to content

Commit

Permalink
drm/i915/selftests: Update live.evict to wait on requests / idle GPU …
Browse files Browse the repository at this point in the history
…after each loop

Update live.evict to wait on last request and idle GPU after each loop.
This not only enhances the test to fill the GGTT on each engine class
but also avoid timeouts from igt_flush_test when using GuC submission.
igt_flush_test (idle GPU) can take a long time with GuC submission if
losts of contexts are created due to H2G / G2H required to destroy
contexts.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211021214040.33292-1-matthew.brost@intel.com
  • Loading branch information
Matthew Brost authored and John Harrison committed Oct 22, 2021
1 parent 7c28711 commit 393211e
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions drivers/gpu/drm/i915/selftests/i915_gem_evict.c
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,7 @@ static int igt_evict_contexts(void *arg)
/* Overfill the GGTT with context objects and so try to evict one. */
for_each_engine(engine, gt, id) {
struct i915_sw_fence fence;
struct i915_request *last = NULL;

count = 0;
onstack_fence_init(&fence);
Expand Down Expand Up @@ -479,13 +480,31 @@ static int igt_evict_contexts(void *arg)

i915_request_add(rq);
count++;
if (last)
i915_request_put(last);
last = i915_request_get(rq);
err = 0;
} while(1);
onstack_fence_fini(&fence);
pr_info("Submitted %lu contexts/requests on %s\n",
count, engine->name);
if (err)
break;
if (last) {
if (i915_request_wait(last, 0, HZ) < 0) {
err = -EIO;
i915_request_put(last);
pr_err("Failed waiting for last request (on %s)",
engine->name);
break;
}
i915_request_put(last);
}
err = intel_gt_wait_for_idle(engine->gt, HZ * 3);
if (err) {
pr_err("Failed to idle GT (on %s)", engine->name);
break;
}
}

mutex_lock(&ggtt->vm.mutex);
Expand Down

0 comments on commit 393211e

Please sign in to comment.