[Intel-gfx] [PATCH i-g-t] tests/gem_eio: Fix usage of gem_quiescent_gpu
Antonio Argenziano
antonio.argenziano at intel.com
Thu Dec 14 22:01:31 UTC 2017
After change "lib: Ask the kernel to quiesce the GPU" was merged,
gem_quiescent_gpu() would not submit noop batches to all engines
therefore the test should submit the workload and use the library
function to wait for the workload to complete.
Cc: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
Signed-off-by: Antonio Argenziano <antonio.argenziano at intel.com>
---
tests/gem_eio.c | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/tests/gem_eio.c b/tests/gem_eio.c
index 2ac9f0a9..868f2236 100644
--- a/tests/gem_eio.c
+++ b/tests/gem_eio.c
@@ -60,13 +60,41 @@ static bool i915_reset_control(bool enable)
return ret;
}
+static void noop(int fd, unsigned flags)
+{
+ const uint32_t bbe = MI_BATCH_BUFFER_END;
+ struct drm_i915_gem_execbuffer2 eb;
+ struct drm_i915_gem_exec_object2 exec;
+
+ memset(&exec, 0, sizeof(exec));
+ exec.handle = gem_create(fd, 4096);
+ igt_assert((int)exec.handle > 0);
+ gem_write(fd, exec.handle, 0, &bbe, sizeof(bbe));
+
+ memset(&eb, 0, sizeof(eb));
+ eb.buffers_ptr = to_user_pointer(&exec);
+ eb.buffer_count = 1;
+ eb.flags = flags;
+
+ gem_execbuf(fd, &eb);
+}
+
+static void noop_all_engines(int fd)
+{
+ unsigned engine;
+ for_each_engine(fd, engine)
+ noop(fd, engine);
+
+ gem_quiescent_gpu(fd);
+}
+
static void trigger_reset(int fd)
{
igt_force_gpu_reset(fd);
/* And just check the gpu is indeed running again */
igt_debug("Checking that the GPU recovered\n");
- gem_quiescent_gpu(fd);
+ noop_all_engines(fd);
}
static void wedge_gpu(int fd)
--
2.14.2
More information about the Intel-gfx
mailing list