summaryrefslogtreecommitdiff
path: root/tests/i915/gem_ctx_create.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2020-03-03 14:28:48 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2020-03-03 14:53:14 +0000
commitc73f2de7156a684d41b3919bac826a1bc5cfe525 (patch)
tree89969768dd652efa3e83bf469f07f4a76d50490d /tests/i915/gem_ctx_create.c
parent5c37c3ee1e9490c16d2575bdcf1521f2092351b8 (diff)
i915/gem_ctx_create: Fix 'files'
The test is supposed to create a context for each execution, so do so. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Diffstat (limited to 'tests/i915/gem_ctx_create.c')
-rw-r--r--tests/i915/gem_ctx_create.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/tests/i915/gem_ctx_create.c b/tests/i915/gem_ctx_create.c
index 2c44a3e3..d9192fba 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",