[igt-dev] [PATCH i-g-t 78/89] tests/i915/sysfs: Convert to intel_ctx_t
Jason Ekstrand
jason at jlekstrand.net
Fri Apr 23 21:48:42 UTC 2021
Signed-off-by: Jason Ekstrand <jason at jlekstrand.net>
---
tests/i915/sysfs_heartbeat_interval.c | 40 ++++++++++-----------
tests/i915/sysfs_preempt_timeout.c | 39 ++++++++++----------
tests/i915/sysfs_timeslice_duration.c | 51 +++++++++++++--------------
3 files changed, 64 insertions(+), 66 deletions(-)
diff --git a/tests/i915/sysfs_heartbeat_interval.c b/tests/i915/sysfs_heartbeat_interval.c
index b8aba241..b70b653b 100644
--- a/tests/i915/sysfs_heartbeat_interval.c
+++ b/tests/i915/sysfs_heartbeat_interval.c
@@ -132,13 +132,12 @@ static void set_unbannable(int i915, uint32_t ctx)
gem_context_set_param(i915, &p);
}
-static uint32_t create_context(int i915, unsigned int class, unsigned int inst, int prio)
+static const intel_ctx_t *
+create_ctx(int i915, unsigned int class, unsigned int inst, int prio)
{
- uint32_t ctx;
-
- ctx = gem_context_create_for_engine(i915, class, inst);
- set_unbannable(i915, ctx);
- gem_context_set_priority(i915, ctx, prio);
+ const intel_ctx_t *ctx = intel_ctx_create_for_engine(i915, class, inst);
+ set_unbannable(i915, ctx->id);
+ gem_context_set_priority(i915, ctx->id, prio);
return ctx;
}
@@ -149,23 +148,23 @@ static uint64_t __test_timeout(int i915, int engine, unsigned int timeout)
struct timespec ts = {};
igt_spin_t *spin[2];
uint64_t elapsed;
- uint32_t ctx[2];
+ const intel_ctx_t *ctx[2];
igt_assert(igt_sysfs_scanf(engine, "class", "%u", &class) == 1);
igt_assert(igt_sysfs_scanf(engine, "instance", "%u", &inst) == 1);
set_heartbeat(engine, timeout);
- ctx[0] = create_context(i915, class, inst, 1023);
- spin[0] = igt_spin_new(i915, ctx[0],
+ ctx[0] = create_ctx(i915, class, inst, 1023);
+ spin[0] = igt_spin_new(i915, .ctx = ctx[0],
.flags = (IGT_SPIN_NO_PREEMPTION |
IGT_SPIN_POLL_RUN |
IGT_SPIN_FENCE_OUT));
igt_spin_busywait_until_started(spin[0]);
- ctx[1] = create_context(i915, class, inst, -1023);
+ ctx[1] = create_ctx(i915, class, inst, -1023);
igt_nsec_elapsed(&ts);
- spin[1] = igt_spin_new(i915, ctx[1], .flags = IGT_SPIN_POLL_RUN);
+ spin[1] = igt_spin_new(i915, .ctx = ctx[1], .flags = IGT_SPIN_POLL_RUN);
igt_spin_busywait_until_started(spin[1]);
elapsed = igt_nsec_elapsed(&ts);
@@ -176,8 +175,8 @@ static uint64_t __test_timeout(int i915, int engine, unsigned int timeout)
igt_spin_free(i915, spin[0]);
- gem_context_destroy(i915, ctx[1]);
- gem_context_destroy(i915, ctx[0]);
+ intel_ctx_destroy(i915, ctx[1]);
+ intel_ctx_destroy(i915, ctx[0]);
gem_quiescent_gpu(i915);
return elapsed;
@@ -292,18 +291,18 @@ static void client(int i915, int engine, int *ctl, int duration, int expect)
{
unsigned int class, inst;
unsigned long count = 0;
- uint32_t ctx;
+ const intel_ctx_t *ctx;
igt_assert(igt_sysfs_scanf(engine, "class", "%u", &class) == 1);
igt_assert(igt_sysfs_scanf(engine, "instance", "%u", &inst) == 1);
- ctx = create_context(i915, class, inst, 0);
+ ctx = create_ctx(i915, class, inst, 0);
while (!READ_ONCE(*ctl)) {
unsigned int elapsed;
igt_spin_t *spin;
- spin = igt_spin_new(i915, ctx,
+ spin = igt_spin_new(i915, .ctx = ctx,
.flags = (IGT_SPIN_NO_PREEMPTION |
IGT_SPIN_POLL_RUN |
IGT_SPIN_FENCE_OUT));
@@ -331,7 +330,7 @@ static void client(int i915, int engine, int *ctl, int duration, int expect)
count++;
}
- gem_context_destroy(i915, ctx);
+ intel_ctx_destroy(i915, ctx);
igt_info("%s client completed %lu spins\n",
expect < 0 ? "Bad" : "Good", count);
}
@@ -414,7 +413,7 @@ static void test_off(int i915, int engine)
unsigned int class, inst;
unsigned int saved;
igt_spin_t *spin;
- uint32_t ctx;
+ const intel_ctx_t *ctx;
/*
* Some other clients request that there is never any interruption
@@ -433,9 +432,9 @@ static void test_off(int i915, int engine)
set_heartbeat(engine, 0);
- ctx = create_context(i915, class, inst, 0);
+ ctx = create_ctx(i915, class, inst, 0);
- spin = igt_spin_new(i915, ctx,
+ spin = igt_spin_new(i915, .ctx = ctx,
.flags = (IGT_SPIN_POLL_RUN |
IGT_SPIN_NO_PREEMPTION |
IGT_SPIN_FENCE_OUT));
@@ -455,6 +454,7 @@ static void test_off(int i915, int engine)
gem_quiescent_gpu(i915);
set_heartbeat(engine, saved);
+ intel_ctx_destroy(i915, ctx);
}
igt_main
diff --git a/tests/i915/sysfs_preempt_timeout.c b/tests/i915/sysfs_preempt_timeout.c
index 83a60436..9f00093e 100644
--- a/tests/i915/sysfs_preempt_timeout.c
+++ b/tests/i915/sysfs_preempt_timeout.c
@@ -126,13 +126,12 @@ static void set_unbannable(int i915, uint32_t ctx)
gem_context_set_param(i915, &p);
}
-static uint32_t create_context(int i915, unsigned int class, unsigned int inst, int prio)
+static const intel_ctx_t *
+create_ctx(int i915, unsigned int class, unsigned int inst, int prio)
{
- uint32_t ctx;
-
- ctx = gem_context_create_for_engine(i915, class, inst);
- set_unbannable(i915, ctx);
- gem_context_set_priority(i915, ctx, prio);
+ const intel_ctx_t *ctx = intel_ctx_create_for_engine(i915, class, inst);
+ set_unbannable(i915, ctx->id);
+ gem_context_set_priority(i915, ctx->id, prio);
return ctx;
}
@@ -143,23 +142,23 @@ static uint64_t __test_timeout(int i915, int engine, unsigned int timeout)
struct timespec ts = {};
igt_spin_t *spin[2];
uint64_t elapsed;
- uint32_t ctx[2];
+ const intel_ctx_t *ctx[2];
igt_assert(igt_sysfs_scanf(engine, "class", "%u", &class) == 1);
igt_assert(igt_sysfs_scanf(engine, "instance", "%u", &inst) == 1);
set_preempt_timeout(engine, timeout);
- ctx[0] = create_context(i915, class, inst, -1023);
- spin[0] = igt_spin_new(i915, ctx[0],
+ ctx[0] = create_ctx(i915, class, inst, -1023);
+ spin[0] = igt_spin_new(i915, .ctx = ctx[0],
.flags = (IGT_SPIN_NO_PREEMPTION |
IGT_SPIN_POLL_RUN |
IGT_SPIN_FENCE_OUT));
igt_spin_busywait_until_started(spin[0]);
- ctx[1] = create_context(i915, class, inst, 1023);
+ ctx[1] = create_ctx(i915, class, inst, 1023);
igt_nsec_elapsed(&ts);
- spin[1] = igt_spin_new(i915, ctx[1], .flags = IGT_SPIN_POLL_RUN);
+ spin[1] = igt_spin_new(i915, .ctx = ctx[1], .flags = IGT_SPIN_POLL_RUN);
igt_spin_busywait_until_started(spin[1]);
elapsed = igt_nsec_elapsed(&ts);
@@ -170,8 +169,8 @@ static uint64_t __test_timeout(int i915, int engine, unsigned int timeout)
igt_spin_free(i915, spin[0]);
- gem_context_destroy(i915, ctx[1]);
- gem_context_destroy(i915, ctx[0]);
+ intel_ctx_destroy(i915, ctx[1]);
+ intel_ctx_destroy(i915, ctx[0]);
gem_quiescent_gpu(i915);
return elapsed;
@@ -231,7 +230,7 @@ static void test_off(int i915, int engine)
unsigned int class, inst;
igt_spin_t *spin[2];
unsigned int saved;
- uint32_t ctx[2];
+ const intel_ctx_t *ctx[2];
/*
* We support setting the timeout to 0 to disable the reset on
@@ -252,15 +251,15 @@ static void test_off(int i915, int engine)
set_preempt_timeout(engine, 0);
- ctx[0] = create_context(i915, class, inst, -1023);
- spin[0] = igt_spin_new(i915, ctx[0],
+ ctx[0] = create_ctx(i915, class, inst, -1023);
+ spin[0] = igt_spin_new(i915, .ctx = ctx[0],
.flags = (IGT_SPIN_NO_PREEMPTION |
IGT_SPIN_POLL_RUN |
IGT_SPIN_FENCE_OUT));
igt_spin_busywait_until_started(spin[0]);
- ctx[1] = create_context(i915, class, inst, 1023);
- spin[1] = igt_spin_new(i915, ctx[1], .flags = IGT_SPIN_POLL_RUN);
+ ctx[1] = create_ctx(i915, class, inst, 1023);
+ spin[1] = igt_spin_new(i915, .ctx = ctx[1], .flags = IGT_SPIN_POLL_RUN);
for (int i = 0; i < 150; i++) {
igt_assert_eq(sync_fence_status(spin[0]->out_fence), 0);
@@ -277,8 +276,8 @@ static void test_off(int i915, int engine)
igt_spin_free(i915, spin[0]);
- gem_context_destroy(i915, ctx[1]);
- gem_context_destroy(i915, ctx[0]);
+ intel_ctx_destroy(i915, ctx[1]);
+ intel_ctx_destroy(i915, ctx[0]);
igt_assert(enable_hangcheck(i915, true));
gem_quiescent_gpu(i915);
diff --git a/tests/i915/sysfs_timeslice_duration.c b/tests/i915/sysfs_timeslice_duration.c
index 754b7ca6..9c78aeb9 100644
--- a/tests/i915/sysfs_timeslice_duration.c
+++ b/tests/i915/sysfs_timeslice_duration.c
@@ -137,13 +137,12 @@ static void set_unbannable(int i915, uint32_t ctx)
gem_context_set_param(i915, &p);
}
-static uint32_t create_context(int i915, unsigned int class, unsigned int inst, int prio)
+static const intel_ctx_t *
+create_ctx(int i915, unsigned int class, unsigned int inst, int prio)
{
- uint32_t ctx;
-
- ctx = gem_context_create_for_engine(i915, class, inst);
- set_unbannable(i915, ctx);
- gem_context_set_priority(i915, ctx, prio);
+ const intel_ctx_t *ctx = intel_ctx_create_for_engine(i915, class, inst);
+ set_unbannable(i915, ctx->id);
+ gem_context_set_priority(i915, ctx->id, prio);
return ctx;
}
@@ -190,7 +189,7 @@ static uint64_t __test_duration(int i915, int engine, unsigned int timeout)
double duration = clockrate(i915);
unsigned int class, inst, mmio;
uint32_t *cs, *map;
- uint32_t ctx[2];
+ const intel_ctx_t *ctx[2];
int start;
int i;
@@ -203,8 +202,8 @@ static uint64_t __test_duration(int i915, int engine, unsigned int timeout)
set_timeslice(engine, timeout);
- ctx[0] = create_context(i915, class, inst, 0);
- ctx[1] = create_context(i915, class, inst, 0);
+ ctx[0] = create_ctx(i915, class, inst, 0);
+ ctx[1] = create_ctx(i915, class, inst, 0);
map = gem_mmap__device_coherent(i915, obj[2].handle,
0, 4096, PROT_WRITE);
@@ -259,10 +258,10 @@ static uint64_t __test_duration(int i915, int engine, unsigned int timeout)
igt_assert(cs - map < 4096 / sizeof(*cs));
munmap(map, 4096);
- eb.rsvd1 = ctx[0];
+ eb.rsvd1 = ctx[0]->id;
gem_execbuf(i915, &eb);
- eb.rsvd1 = ctx[1];
+ eb.rsvd1 = ctx[1]->id;
eb.batch_start_offset = start;
gem_execbuf(i915, &eb);
@@ -279,7 +278,7 @@ static uint64_t __test_duration(int i915, int engine, unsigned int timeout)
munmap(map, 4096);
for (i = 0; i < ARRAY_SIZE(ctx); i++)
- gem_context_destroy(i915, ctx[i]);
+ intel_ctx_destroy(i915, ctx[i]);
for (i = 0; i < ARRAY_SIZE(obj); i++)
gem_close(i915, obj[i].handle);
@@ -370,23 +369,23 @@ static uint64_t __test_timeout(int i915, int engine, unsigned int timeout)
struct timespec ts = {};
igt_spin_t *spin[2];
uint64_t elapsed;
- uint32_t ctx[2];
+ const intel_ctx_t *ctx[2];
igt_assert(igt_sysfs_scanf(engine, "class", "%u", &class) == 1);
igt_assert(igt_sysfs_scanf(engine, "instance", "%u", &inst) == 1);
set_timeslice(engine, timeout);
- ctx[0] = create_context(i915, class, inst, 0);
- spin[0] = igt_spin_new(i915, ctx[0],
+ ctx[0] = create_ctx(i915, class, inst, 0);
+ spin[0] = igt_spin_new(i915, .ctx = ctx[0],
.flags = (IGT_SPIN_NO_PREEMPTION |
IGT_SPIN_POLL_RUN |
IGT_SPIN_FENCE_OUT));
igt_spin_busywait_until_started(spin[0]);
- ctx[1] = create_context(i915, class, inst, 0);
+ ctx[1] = create_ctx(i915, class, inst, 0);
igt_nsec_elapsed(&ts);
- spin[1] = igt_spin_new(i915, ctx[1], .flags = IGT_SPIN_POLL_RUN);
+ spin[1] = igt_spin_new(i915, .ctx = ctx[1], .flags = IGT_SPIN_POLL_RUN);
igt_spin_busywait_until_started(spin[1]);
elapsed = igt_nsec_elapsed(&ts);
@@ -397,8 +396,8 @@ static uint64_t __test_timeout(int i915, int engine, unsigned int timeout)
igt_spin_free(i915, spin[0]);
- gem_context_destroy(i915, ctx[1]);
- gem_context_destroy(i915, ctx[0]);
+ intel_ctx_destroy(i915, ctx[1]);
+ intel_ctx_destroy(i915, ctx[0]);
gem_quiescent_gpu(i915);
return elapsed;
@@ -459,7 +458,7 @@ static void test_off(int i915, int engine)
unsigned int class, inst;
unsigned int saved;
igt_spin_t *spin[2];
- uint32_t ctx[2];
+ const intel_ctx_t *ctx[2];
/*
* As always, there are some who must run uninterrupted and simply do
@@ -481,15 +480,15 @@ static void test_off(int i915, int engine)
set_timeslice(engine, 0);
- ctx[0] = create_context(i915, class, inst, 0);
- spin[0] = igt_spin_new(i915, ctx[0],
+ ctx[0] = create_ctx(i915, class, inst, 0);
+ spin[0] = igt_spin_new(i915, .ctx = ctx[0],
.flags = (IGT_SPIN_NO_PREEMPTION |
IGT_SPIN_POLL_RUN |
IGT_SPIN_FENCE_OUT));
igt_spin_busywait_until_started(spin[0]);
- ctx[1] = create_context(i915, class, inst, 0);
- spin[1] = igt_spin_new(i915, ctx[1], .flags = IGT_SPIN_POLL_RUN);
+ ctx[1] = create_ctx(i915, class, inst, 0);
+ spin[1] = igt_spin_new(i915, .ctx = ctx[1], .flags = IGT_SPIN_POLL_RUN);
for (int i = 0; i < 150; i++) {
igt_assert_eq(sync_fence_status(spin[0]->out_fence), 0);
@@ -506,8 +505,8 @@ static void test_off(int i915, int engine)
igt_spin_free(i915, spin[0]);
- gem_context_destroy(i915, ctx[1]);
- gem_context_destroy(i915, ctx[0]);
+ intel_ctx_destroy(i915, ctx[1]);
+ intel_ctx_destroy(i915, ctx[0]);
igt_assert(enable_hangcheck(i915, true));
gem_quiescent_gpu(i915);
--
2.31.1
More information about the igt-dev
mailing list