mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-07 06:14:24 +08:00
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
This commit is contained in:
parent
f2085c8e95
commit
c4e6488120
@ -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",
|
||||
|
Loading…
Reference in New Issue
Block a user