[igt-dev] [PATCH i-g-t] i915: Increase engine[] to fit the entire RING_MASK
Chris Wilson
chris at chris-wilson.co.uk
Fri Nov 13 16:43:40 UTC 2020
As a stepping stone, increase the assumed 16 engines is enough for
everyone, to cover the current RING_MASK, the maximum number of engines
that can currently be selected during execbuf.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
tests/i915/gem_busy.c | 2 +-
tests/i915/gem_ctx_create.c | 6 +++---
tests/i915/gem_ctx_shared.c | 2 +-
tests/i915/gem_ctx_thrash.c | 4 ++--
tests/i915/gem_eio.c | 4 ++--
tests/i915/gem_exec_create.c | 2 +-
tests/i915/gem_exec_fence.c | 6 +++---
tests/i915/gem_exec_gttfill.c | 2 +-
tests/i915/gem_exec_latency.c | 4 ++--
tests/i915/gem_exec_parallel.c | 6 +++---
tests/i915/gem_exec_reloc.c | 2 +-
tests/i915/gem_exec_suspend.c | 2 +-
tests/i915/gem_exec_whisper.c | 2 +-
tests/i915/gem_shrink.c | 2 +-
tests/i915/i915_module_load.c | 5 +++--
15 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/tests/i915/gem_busy.c b/tests/i915/gem_busy.c
index ee6a5ca0e..435f30d7b 100644
--- a/tests/i915/gem_busy.c
+++ b/tests/i915/gem_busy.c
@@ -233,8 +233,8 @@ static void close_race(int fd)
{
const unsigned int ncpus = sysconf(_SC_NPROCESSORS_ONLN);
const unsigned int nhandles = gem_submission_measure(fd, ALL_ENGINES);
+ unsigned int engines[I915_EXEC_RING_MASK + 1], nengine;
const struct intel_execution_engine2 *e;
- unsigned int engines[16], nengine;
unsigned long *control;
uint32_t *handles;
int i;
diff --git a/tests/i915/gem_ctx_create.c b/tests/i915/gem_ctx_create.c
index c7295f705..9a512a03b 100644
--- a/tests/i915/gem_ctx_create.c
+++ b/tests/i915/gem_ctx_create.c
@@ -37,10 +37,10 @@
#define ENGINE_FLAGS (I915_EXEC_RING_MASK | I915_EXEC_BSD_MASK)
-static unsigned all_engines[16];
+static unsigned all_engines[I915_EXEC_RING_MASK + 1];
static unsigned all_nengine;
-static unsigned ppgtt_engines[16];
+static unsigned ppgtt_engines[I915_EXEC_RING_MASK + 1];
static unsigned ppgtt_nengine;
static int create_ioctl(int fd, struct drm_i915_gem_context_create *arg)
@@ -131,7 +131,7 @@ static void active(int fd, const struct intel_execution_engine2 *e,
const uint32_t bbe = MI_BATCH_BUFFER_END;
struct drm_i915_gem_execbuffer2 execbuf;
struct drm_i915_gem_exec_object2 obj;
- unsigned int nengine, engines[16];
+ unsigned int nengine, engines[ARRAY_SIZE(all_engines)];
unsigned *shared;
/* When e is NULL, test would run for all engines */
if (!e) {
diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
index 616462d79..6ad721dcd 100644
--- a/tests/i915/gem_ctx_shared.c
+++ b/tests/i915/gem_ctx_shared.c
@@ -740,7 +740,7 @@ static void promotion(int i915, unsigned ring)
static void smoketest(int i915, unsigned ring, unsigned timeout)
{
const int ncpus = sysconf(_SC_NPROCESSORS_ONLN);
- unsigned engines[16];
+ unsigned engines[I915_EXEC_RING_MASK + 1];
unsigned nengine;
unsigned engine;
uint32_t scratch;
diff --git a/tests/i915/gem_ctx_thrash.c b/tests/i915/gem_ctx_thrash.c
index d9ddd6689..142bb65f3 100644
--- a/tests/i915/gem_ctx_thrash.c
+++ b/tests/i915/gem_ctx_thrash.c
@@ -92,7 +92,7 @@ static void single(const char *name, bool all_engines)
{
struct drm_i915_gem_exec_object2 *obj;
struct drm_i915_gem_relocation_entry *reloc;
- unsigned int engines[16], num_engines, num_ctx;
+ unsigned int engines[I915_EXEC_RING_MASK + 1], num_engines, num_ctx;
uint32_t *ctx, *map, scratch, size;
int fd, gen;
#define MAX_LOOP 16
@@ -220,7 +220,7 @@ static void single(const char *name, bool all_engines)
static void processes(void)
{
- unsigned engines[16];
+ unsigned engines[I915_EXEC_RING_MASK + 1];
int num_engines;
struct rlimit rlim;
unsigned num_ctx;
diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index c5ef61bd4..cc5ab2b83 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -694,11 +694,11 @@ static void test_inflight_external(int fd)
static void test_inflight_internal(int fd, unsigned int wait)
{
+ const uint32_t bbe = MI_BATCH_BUFFER_END;
struct drm_i915_gem_execbuffer2 execbuf;
struct drm_i915_gem_exec_object2 obj[2];
- uint32_t bbe = MI_BATCH_BUFFER_END;
+ int fences[I915_EXEC_RING_MASK + 1];
unsigned nfence = 0;
- int fences[16];
igt_spin_t *hang;
igt_require(gem_has_exec_fence(fd));
diff --git a/tests/i915/gem_exec_create.c b/tests/i915/gem_exec_create.c
index ee7d4e5d8..94c21a6be 100644
--- a/tests/i915/gem_exec_create.c
+++ b/tests/i915/gem_exec_create.c
@@ -57,7 +57,7 @@ static void all(int fd, unsigned flags, int timeout, int ncpus)
const uint32_t bbe = MI_BATCH_BUFFER_END;
struct drm_i915_gem_execbuffer2 execbuf;
struct drm_i915_gem_exec_object2 obj;
- unsigned engines[16], nengine;
+ unsigned engines[I915_EXEC_RING_MASK + 1], nengine;
nengine = 0;
for_each_physical_engine(e, fd)
diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
index 56469ebab..6eea050d8 100644
--- a/tests/i915/gem_exec_fence.c
+++ b/tests/i915/gem_exec_fence.c
@@ -881,7 +881,7 @@ static void test_long_history(int fd, long ring_size, unsigned flags)
const uint32_t bbe = MI_BATCH_BUFFER_END;
struct drm_i915_gem_exec_object2 obj[2];
struct drm_i915_gem_execbuffer2 execbuf;
- unsigned int engines[16], nengine, n, s;
+ unsigned int engines[I915_EXEC_RING_MASK + 1], nengine, n, s;
unsigned long limit;
int all_fences;
IGT_CORK_HANDLE(c);
@@ -1224,8 +1224,8 @@ static void test_syncobj_wait(int fd)
struct drm_i915_gem_exec_fence fence = {
.handle = syncobj_create(fd, 0),
};
+ unsigned handle[I915_EXEC_RING_MASK + 1];
igt_spin_t *spin;
- unsigned handle[16];
int n;
/* Check that we can use the syncobj to asynchronous wait prior to
@@ -1976,9 +1976,9 @@ static void test_syncobj_timeline_wait(int fd)
struct drm_i915_gem_exec_fence fence = {
.handle = syncobj_create(fd, 0),
};
+ unsigned handle[I915_EXEC_RING_MASK + 1];
uint64_t value = 1;
igt_spin_t *spin;
- unsigned handle[16];
int n;
/* Check that we can use the syncobj to asynchronous wait prior to
diff --git a/tests/i915/gem_exec_gttfill.c b/tests/i915/gem_exec_gttfill.c
index 8f2336a30..1ba5e9a32 100644
--- a/tests/i915/gem_exec_gttfill.c
+++ b/tests/i915/gem_exec_gttfill.c
@@ -110,9 +110,9 @@ static void fillgtt(int fd, unsigned ring, int timeout)
const unsigned int gen = intel_gen(intel_get_drm_devid(fd));
struct drm_i915_gem_execbuffer2 execbuf;
struct drm_i915_gem_relocation_entry reloc[2];
+ unsigned engines[I915_EXEC_RING_MASK + 1];
volatile uint64_t *shared;
struct batch *batches;
- unsigned engines[16];
unsigned nengine;
unsigned count;
uint64_t size;
diff --git a/tests/i915/gem_exec_latency.c b/tests/i915/gem_exec_latency.c
index 4de38288f..6c5a4bc6f 100644
--- a/tests/i915/gem_exec_latency.c
+++ b/tests/i915/gem_exec_latency.c
@@ -464,8 +464,8 @@ rthog_latency_on_ring(int fd, unsigned int engine, const char *name, unsigned in
.flags = IGT_SPIN_POLL_RUN | IGT_SPIN_FAST,
};
struct rt_pkt *results;
- unsigned int engines[16];
- const char *names[16];
+ unsigned int engines[I915_EXEC_RING_MASK + 1];
+ const char *names[ARRAY_SIZE(engines)];
unsigned int nengine;
int ret;
diff --git a/tests/i915/gem_exec_parallel.c b/tests/i915/gem_exec_parallel.c
index 1a988b957..d3dd06a65 100644
--- a/tests/i915/gem_exec_parallel.c
+++ b/tests/i915/gem_exec_parallel.c
@@ -192,11 +192,11 @@ static void handle_close(int fd, unsigned int flags, uint32_t handle, void *data
static void all(int fd, struct intel_execution_engine2 *engine, unsigned flags)
{
const unsigned int gen = intel_gen(intel_get_drm_devid(fd));
+ unsigned engines[I915_EXEC_RING_MASK + 1], nengine;
+ uint32_t scratch[NUMOBJ], handle[NUMOBJ];
+ struct thread *threads;
pthread_mutex_t mutex;
pthread_cond_t cond;
- struct thread *threads;
- uint32_t scratch[NUMOBJ], handle[NUMOBJ];
- unsigned engines[16], nengine;
void *arg[NUMOBJ];
int go;
int i;
diff --git a/tests/i915/gem_exec_reloc.c b/tests/i915/gem_exec_reloc.c
index 973499ebc..8dcb24a67 100644
--- a/tests/i915/gem_exec_reloc.c
+++ b/tests/i915/gem_exec_reloc.c
@@ -270,7 +270,7 @@ static void active(int fd, unsigned engine)
struct drm_i915_gem_relocation_entry reloc;
struct drm_i915_gem_exec_object2 obj[2];
struct drm_i915_gem_execbuffer2 execbuf;
- unsigned engines[16];
+ unsigned engines[I915_EXEC_RING_MASK + 1];
unsigned nengine;
int pass;
diff --git a/tests/i915/gem_exec_suspend.c b/tests/i915/gem_exec_suspend.c
index 6886bccd4..8c5661db9 100644
--- a/tests/i915/gem_exec_suspend.c
+++ b/tests/i915/gem_exec_suspend.c
@@ -94,7 +94,7 @@ static void run_test(int fd, unsigned engine, unsigned flags)
struct drm_i915_gem_exec_object2 obj[2];
struct drm_i915_gem_relocation_entry reloc;
struct drm_i915_gem_execbuffer2 execbuf;
- unsigned engines[16];
+ unsigned engines[I915_EXEC_RING_MASK + 1];
unsigned nengine;
igt_spin_t *spin = NULL;
diff --git a/tests/i915/gem_exec_whisper.c b/tests/i915/gem_exec_whisper.c
index b63d791d1..29d6c6d2f 100644
--- a/tests/i915/gem_exec_whisper.c
+++ b/tests/i915/gem_exec_whisper.c
@@ -175,10 +175,10 @@ static void whisper(int fd, unsigned engine, unsigned flags)
struct drm_i915_gem_exec_object2 store, scratch;
struct drm_i915_gem_exec_object2 tmp[2];
struct drm_i915_gem_execbuffer2 execbuf;
+ unsigned engines[I915_EXEC_RING_MASK + 1];
struct hang hang;
int fds[64];
uint32_t contexts[64];
- unsigned engines[16];
unsigned nengine;
uint32_t batch[16];
unsigned int relocations = 0;
diff --git a/tests/i915/gem_shrink.c b/tests/i915/gem_shrink.c
index 5715ef688..dba62c8fa 100644
--- a/tests/i915/gem_shrink.c
+++ b/tests/i915/gem_shrink.c
@@ -37,7 +37,7 @@
#define MADV_FREE 8
#endif
-static unsigned int engines[16], nengine;
+static unsigned int engines[I915_EXEC_RING_MASK + 1], nengine;
static void get_pages(int fd, uint64_t alloc)
{
diff --git a/tests/i915/i915_module_load.c b/tests/i915/i915_module_load.c
index aa998b992..7767eb2b5 100644
--- a/tests/i915/i915_module_load.c
+++ b/tests/i915/i915_module_load.c
@@ -103,10 +103,11 @@ static void store_dword(int fd, unsigned ring)
static void store_all(int fd)
{
const unsigned int gen = intel_gen(intel_get_drm_devid(fd));
+ unsigned int permuted[I915_EXEC_RING_MASK + 1];
+ unsigned int engines[I915_EXEC_RING_MASK + 1];
struct drm_i915_gem_exec_object2 obj[2];
- struct drm_i915_gem_relocation_entry reloc[32];
+ struct drm_i915_gem_relocation_entry reloc[2 * ARRAY_SIZE(engines)];
struct drm_i915_gem_execbuffer2 execbuf;
- unsigned engines[16], permuted[16];
uint32_t batch[16];
uint64_t offset;
unsigned nengine;
--
2.29.2
More information about the igt-dev
mailing list