[igt-dev] [PATCH i-g-t] i915/gem_ctx_create: Fix 'files'
Chris Wilson
chris at chris-wilson.co.uk
Tue Mar 3 14:31:37 UTC 2020
The test is supposed to create a context for each execution, so do so.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
tests/i915/gem_ctx_create.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/tests/i915/gem_ctx_create.c b/tests/i915/gem_ctx_create.c
index 2c44a3e3e..d9192fbab 100644
--- a/tests/i915/gem_ctx_create.c
+++ b/tests/i915/gem_ctx_create.c
@@ -178,7 +178,7 @@ static void active(int fd, const struct intel_execution_engine2 *e,
execbuf.flags = ppgtt_engines[child];
- while (!*(volatile unsigned *)shared) {
+ while (!READ_ONCE(*shared)) {
obj.handle = gem_create(fd, 4096 << 10);
gem_write(fd, obj.handle, 0, &bbe, sizeof(bbe));
@@ -209,17 +209,19 @@ static void active(int fd, const struct intel_execution_engine2 *e,
clock_gettime(CLOCK_MONOTONIC, &start);
do {
- do {
- execbuf.rsvd1 = ctx;
- for (unsigned n = 0; n < nengine; n++) {
- execbuf.flags = engines[n];
- gem_execbuf(fd, &execbuf);
- }
- gem_context_destroy(fd, execbuf.rsvd1);
- } while (++count & 1023);
+ execbuf.rsvd1 = gem_context_clone_with_engines(fd, ctx);
+ for (unsigned n = 0; n < nengine; n++) {
+ execbuf.flags = engines[n];
+ gem_execbuf(fd, &execbuf);
+ }
+ gem_context_destroy(fd, execbuf.rsvd1);
+ count++;
+
clock_gettime(CLOCK_MONOTONIC, &end);
} while (elapsed(&start, &end) < timeout);
+ gem_context_destroy(fd, ctx);
+
gem_sync(fd, obj.handle);
clock_gettime(CLOCK_MONOTONIC, &end);
igt_info("[%d] Context creation + execution: %.3f us\n",
--
2.25.1
More information about the igt-dev
mailing list