[PATCH i-g-t 22/58] tests/gem_spin_batch: Adopt to use no-reloc
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Tue Jul 6 07:08:59 UTC 2021
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
---
tests/i915/gem_spin_batch.c | 35 +++++++++++++++++++++++++++--------
1 file changed, 27 insertions(+), 8 deletions(-)
diff --git a/tests/i915/gem_spin_batch.c b/tests/i915/gem_spin_batch.c
index db0af018e..ec4ea4623 100644
--- a/tests/i915/gem_spin_batch.c
+++ b/tests/i915/gem_spin_batch.c
@@ -24,6 +24,7 @@
#include "i915/gem.h"
#include "i915/gem_ring.h"
+#include "i915/gem_create.h"
#include "igt.h"
#define MAX_ERROR 5 /* % */
@@ -45,11 +46,13 @@ static void spin(int fd,
struct timespec tv = { };
struct timespec itv = { };
uint64_t elapsed;
+ uint64_t ahnd = get_reloc_ahnd(fd, 0);
- spin = __igt_spin_new(fd, .engine = engine, .flags = flags);
+ spin = __igt_spin_new(fd, .ahnd = ahnd, .engine = engine, .flags = flags);
while ((elapsed = igt_nsec_elapsed(&tv)) >> 30 < timeout_sec) {
igt_spin_t *next =
- __igt_spin_new(fd, .engine = engine, .flags = flags);
+ __igt_spin_new(fd, .ahnd = ahnd,
+ .engine = engine, .flags = flags);
igt_spin_set_timeout(spin,
timeout_100ms - igt_nsec_elapsed(&itv));
@@ -65,6 +68,7 @@ static void spin(int fd,
loops++;
}
igt_spin_free(fd, spin);
+ put_ahnd(ahnd);
igt_info("Completed %ld loops in %lld ns, target %ld\n",
loops, (long long)elapsed, (long)(elapsed / timeout_100ms));
@@ -78,11 +82,12 @@ static void spin(int fd,
static void spin_resubmit(int fd, unsigned int engine, unsigned int flags)
{
igt_spin_t *spin;
+ uint64_t ahnd = get_reloc_ahnd(fd, 0);
if (flags & RESUBMIT_NEW_CTX)
igt_require(gem_has_contexts(fd));
- spin = __igt_spin_new(fd, .engine = engine);
+ spin = __igt_spin_new(fd, .ahnd = ahnd, .engine = engine);
if (flags & RESUBMIT_NEW_CTX)
spin->execbuf.rsvd1 = gem_context_clone_with_engines(fd, 0);
@@ -104,6 +109,7 @@ static void spin_resubmit(int fd, unsigned int engine, unsigned int flags)
gem_context_destroy(fd, spin->execbuf.rsvd1);
igt_spin_free(fd, spin);
+ put_ahnd(ahnd);
}
static void spin_exit_handler(int sig)
@@ -131,6 +137,7 @@ static void spin_all(int i915, unsigned int flags)
{
const struct intel_execution_engine2 *e;
struct igt_spin *spin, *n;
+ uint64_t ahnd;
IGT_LIST_HEAD(list);
__for_each_physical_engine(i915, e) {
@@ -142,9 +149,11 @@ static void spin_all(int i915, unsigned int flags)
ctx = 0;
if (flags & PARALLEL_SPIN_NEW_CTX)
ctx = gem_context_clone_with_engines(i915, 0);
+ ahnd = get_reloc_ahnd(i915, ctx);
/* Prevent preemption so only one is allowed on each engine */
spin = igt_spin_new(i915,
+ .ahnd = ahnd,
.ctx_id = ctx,
.engine = e->flags,
.flags = (IGT_SPIN_POLL_RUN |
@@ -158,9 +167,11 @@ static void spin_all(int i915, unsigned int flags)
igt_list_for_each_entry_safe(spin, n, &list, link) {
igt_assert(gem_bo_busy(i915, spin->handle));
+ ahnd = spin->ahnd;
igt_spin_end(spin);
gem_sync(i915, spin->handle);
igt_spin_free(i915, spin);
+ put_ahnd(ahnd);
}
}
@@ -239,12 +250,20 @@ igt_main
#undef test_each_engine
- igt_subtest("spin-each")
- spin_on_all_engines(fd, 0, 3);
+ igt_subtest_group {
+ igt_fixture
+ intel_allocator_multiprocess_start();
- igt_subtest("user-each") {
- igt_require(has_userptr(fd));
- spin_on_all_engines(fd, IGT_SPIN_USERPTR, 3);
+ igt_subtest("spin-each")
+ spin_on_all_engines(fd, 0, 3);
+
+ igt_subtest("user-each") {
+ igt_require(has_userptr(fd));
+ spin_on_all_engines(fd, IGT_SPIN_USERPTR, 3);
+ }
+
+ igt_fixture
+ intel_allocator_multiprocess_stop();
}
igt_fixture {
--
2.26.0
More information about the Intel-gfx-trybot
mailing list