aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2019-08-27 17:17:26 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2019-08-28 08:32:02 +0100
commitc4e6488120e9ef1ceced8fb0caf134c5242ddaf4 (patch)
tree96949f995c37aaeb6f7a48fe0297cb29c1af2ff6
parentdrm/i915/selftests: Remove accidental serialization between gpu_fill (diff)
drm/i915/selftests: Try to recycle context allocations
igt_ctx_exec allocates a new context for each iteration, keeping them all allocated until the end. Instead, release the local ctx reference at the end of each iteration, allowing ourselves to reap those if under mempressure. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190827161726.3640-2-chris@chris-wilson.co.uk
-rw-r--r--drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
index 63116c4fa8ba..da54a718c712 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
@@ -424,7 +424,7 @@ static int igt_ctx_exec(void *arg)
struct i915_gem_context *ctx;
struct intel_context *ce;
- ctx = live_context(i915, file);
+ ctx = kernel_context(i915);
if (IS_ERR(ctx)) {
err = PTR_ERR(ctx);
goto out_unlock;
@@ -438,6 +438,7 @@ static int igt_ctx_exec(void *arg)
if (IS_ERR(obj)) {
err = PTR_ERR(obj);
intel_context_put(ce);
+ kernel_context_close(ctx);
goto out_unlock;
}
}
@@ -449,12 +450,14 @@ static int igt_ctx_exec(void *arg)
engine->name, ctx->hw_id,
yesno(!!ctx->vm), err);
intel_context_put(ce);
+ kernel_context_close(ctx);
goto out_unlock;
}
err = throttle(ce, tq, ARRAY_SIZE(tq));
if (err) {
intel_context_put(ce);
+ kernel_context_close(ctx);
goto out_unlock;
}
@@ -467,6 +470,7 @@ static int igt_ctx_exec(void *arg)
ncontexts++;
intel_context_put(ce);
+ kernel_context_close(ctx);
}
pr_info("Submitted %lu contexts to %s, filling %lu dwords\n",