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@xxxxxxxxxxxxxxxxxx> Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> Signed-off-by: Antonio Argenziano <antonio.argenziano@xxxxxxxxx> --- 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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx