[igt-dev] [PATCH i-g-t 51/93] tests/i915/gem_shrink: Convert to intel_ctx_t
Jason Ekstrand
jason at jlekstrand.net
Wed Jun 9 17:38:21 UTC 2021
Only one subtest actually needs to iterate over engines.
Signed-off-by: Jason Ekstrand <jason at jlekstrand.net>
---
tests/i915/gem_shrink.c | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)
diff --git a/tests/i915/gem_shrink.c b/tests/i915/gem_shrink.c
index b6450a6f..be1125dd 100644
--- a/tests/i915/gem_shrink.c
+++ b/tests/i915/gem_shrink.c
@@ -38,8 +38,6 @@
#define MADV_FREE 8
#endif
-static unsigned int engines[I915_EXEC_RING_MASK + 1], nengine;
-
static void get_pages(int fd, uint64_t alloc)
{
uint32_t handle = gem_create(fd, alloc);
@@ -164,8 +162,10 @@ static void execbufN(int fd, uint64_t alloc)
static void execbufX(int fd, uint64_t alloc)
{
const uint32_t bbe = MI_BATCH_BUFFER_END;
+ const struct intel_execution_engine2 *e;
struct drm_i915_gem_exec_object2 *obj;
struct drm_i915_gem_execbuffer2 execbuf;
+ const intel_ctx_t *ctx;
int count = alloc >> 20;
uint64_t obj_size;
@@ -175,23 +175,32 @@ static void execbufX(int fd, uint64_t alloc)
obj[count].handle = gem_create(fd, 4096);
gem_write(fd, obj[count].handle, 0, &bbe, sizeof(bbe));
- for (int i = 1; i <= count; i++) {
- int j = count - i;
+ ctx = intel_ctx_create_all_physical(fd);
- obj[j+1].flags = 0;
+ for (int i = 1; i <= count;) {
+ for_each_ctx_engine(fd, ctx, e) {
+ int j = count - i;
- obj[j].handle = gem_create(fd, 1 << 20);
- obj[j].flags = EXEC_OBJECT_WRITE;
+ obj[j+1].flags = 0;
- execbuf.buffers_ptr = to_user_pointer(&obj[j]);
- execbuf.buffer_count = i + 1;
- execbuf.flags = engines[j % nengine];
- gem_execbuf(fd, &execbuf);
+ obj[j].handle = gem_create(fd, 1 << 20);
+ obj[j].flags = EXEC_OBJECT_WRITE;
+
+ execbuf.buffers_ptr = to_user_pointer(&obj[j]);
+ execbuf.buffer_count = i + 1;
+ execbuf.flags = e->flags;
+ execbuf.rsvd1 = ctx->id;
+ gem_execbuf(fd, &execbuf);
+
+ i++;
+ }
}
for (int i = 0; i <= count; i++)
gem_madvise(fd, obj[i].handle, I915_MADV_DONTNEED);
munmap(obj, obj_size);
+
+ intel_ctx_destroy(fd, ctx);
}
static void hang(int fd, uint64_t alloc)
@@ -429,7 +438,6 @@ igt_main
igt_fixture {
const int ncpus = sysconf(_SC_NPROCESSORS_ONLN);
uint64_t mem_size = intel_get_total_ram_mb();
- const struct intel_execution_engine2 *e;
int fd;
fd = drm_open_driver(DRIVER_INTEL);
@@ -451,11 +459,6 @@ igt_main
intel_require_memory(num_processes, alloc_size,
CHECK_SWAP | CHECK_RAM);
- nengine = 0;
- __for_each_physical_engine(fd, e)
- engines[nengine++] = e->flags;
- igt_require(nengine);
-
close(fd);
}
--
2.31.1
More information about the igt-dev
mailing list