diff options
Diffstat (limited to 'tests/gem_busy.c')
-rw-r--r-- | tests/gem_busy.c | 179 |
1 files changed, 95 insertions, 84 deletions
diff --git a/tests/gem_busy.c b/tests/gem_busy.c index 10cb1ad4..9f93097f 100644 --- a/tests/gem_busy.c +++ b/tests/gem_busy.c @@ -604,90 +604,97 @@ igt_main fd = drm_open_driver_master(DRIVER_INTEL); } - igt_fixture { - igt_fork_hang_detector(fd); - } - for (e = intel_execution_engines; e->name; e++) { - igt_subtest_group { - igt_subtest_f("%sbusy-%s", - e->exec_id == 0 ? "basic-" : "", - e->name) { - igt_require(gem_has_ring(fd, e->exec_id | e->flags)); - gem_quiescent_gpu(fd); - basic(fd, e->exec_id | e->flags, 0); - } - } - } - igt_subtest_group { - int gen = 0; - igt_fixture { - igt_require(has_extended_busy_ioctl(fd)); - gem_require_mmap_wc(fd); - gen = intel_gen(intel_get_drm_devid(fd)); + igt_fork_hang_detector(fd); } for (e = intel_execution_engines; e->name; e++) { - /* default exec-id is purely symbolic */ - if (e->exec_id == 0) - continue; - - igt_subtest_f("extended-%s", e->name) { - gem_require_ring(fd, e->exec_id | e->flags); - igt_skip_on_f(gen == 6 && - e->exec_id == I915_EXEC_BSD, - "MI_STORE_DATA broken on gen6 bsd\n"); - gem_quiescent_gpu(fd); - one(fd, e->exec_id, e->flags, 0); - gem_quiescent_gpu(fd); + igt_subtest_group { + igt_subtest_f("%sbusy-%s", + e->exec_id == 0 ? "basic-" : "", + e->name) { + igt_require(gem_has_ring(fd, e->exec_id | e->flags)); + gem_quiescent_gpu(fd); + basic(fd, e->exec_id | e->flags, 0); + } } } - for (e = intel_execution_engines; e->name; e++) { - /* default exec-id is purely symbolic */ - if (e->exec_id == 0) - continue; + igt_subtest_group { + int gen = 0; - igt_subtest_f("extended-parallel-%s", e->name) { - gem_require_ring(fd, e->exec_id | e->flags); - igt_skip_on_f(gen == 6 && - e->exec_id == I915_EXEC_BSD, - "MI_STORE_DATA broken on gen6 bsd\n"); - gem_quiescent_gpu(fd); - one(fd, e->exec_id, e->flags, PARALLEL); - gem_quiescent_gpu(fd); + igt_fixture { + igt_require(has_extended_busy_ioctl(fd)); + gem_require_mmap_wc(fd); + gen = intel_gen(intel_get_drm_devid(fd)); } - } - } - igt_subtest_group { - igt_fixture { - igt_require(has_extended_busy_ioctl(fd)); - igt_require(has_semaphores(fd)); + for (e = intel_execution_engines; e->name; e++) { + /* default exec-id is purely symbolic */ + if (e->exec_id == 0) + continue; + + igt_subtest_f("extended-%s", e->name) { + gem_require_ring(fd, e->exec_id | e->flags); + igt_skip_on_f(gen == 6 && + e->exec_id == I915_EXEC_BSD, + "MI_STORE_DATA broken on gen6 bsd\n"); + gem_quiescent_gpu(fd); + one(fd, e->exec_id, e->flags, 0); + gem_quiescent_gpu(fd); + } + } + + for (e = intel_execution_engines; e->name; e++) { + /* default exec-id is purely symbolic */ + if (e->exec_id == 0) + continue; + + igt_subtest_f("extended-parallel-%s", e->name) { + gem_require_ring(fd, e->exec_id | e->flags); + igt_skip_on_f(gen == 6 && + e->exec_id == I915_EXEC_BSD, + "MI_STORE_DATA broken on gen6 bsd\n"); + gem_quiescent_gpu(fd); + one(fd, e->exec_id, e->flags, PARALLEL); + gem_quiescent_gpu(fd); + } + } } - for (e = intel_execution_engines; e->name; e++) { - /* default exec-id is purely symbolic */ - if (e->exec_id == 0) - continue; + igt_subtest_group { + igt_fixture { + igt_require(has_extended_busy_ioctl(fd)); + igt_require(has_semaphores(fd)); + } + + for (e = intel_execution_engines; e->name; e++) { + /* default exec-id is purely symbolic */ + if (e->exec_id == 0) + continue; - igt_subtest_f("extended-semaphore-%s", e->name) - semaphore(fd, e->exec_id, e->flags); + igt_subtest_f("extended-semaphore-%s", e->name) + semaphore(fd, e->exec_id, e->flags); + } } - } - igt_subtest_group { igt_subtest("close-race") close_race(fd); - } - igt_fixture { - igt_stop_hang_detector(); + igt_fixture { + igt_stop_hang_detector(); + } } - for (e = intel_execution_engines; e->name; e++) { - igt_subtest_group { + igt_subtest_group { + igt_hang_t hang; + + igt_fixture { + hang = igt_allow_hang(fd, 0, 0); + } + + for (e = intel_execution_engines; e->name; e++) { igt_subtest_f("%shang-%s", e->exec_id == 0 ? "basic-" : "", e->name) { @@ -696,32 +703,36 @@ igt_main basic(fd, e->exec_id | e->flags, HANG); } } - } - - igt_subtest_group { - int gen = 0; - igt_fixture { - igt_require(has_extended_busy_ioctl(fd)); - gem_require_mmap_wc(fd); - gen = intel_gen(intel_get_drm_devid(fd)); - } + igt_subtest_group { + int gen = 0; - for (e = intel_execution_engines; e->name; e++) { - /* default exec-id is purely symbolic */ - if (e->exec_id == 0) - continue; + igt_fixture { + igt_require(has_extended_busy_ioctl(fd)); + gem_require_mmap_wc(fd); + gen = intel_gen(intel_get_drm_devid(fd)); + } - igt_subtest_f("extended-hang-%s", e->name) { - gem_require_ring(fd, e->exec_id | e->flags); - igt_skip_on_f(gen == 6 && - e->exec_id == I915_EXEC_BSD, - "MI_STORE_DATA broken on gen6 bsd\n"); - gem_quiescent_gpu(fd); - one(fd, e->exec_id, e->flags, HANG); - gem_quiescent_gpu(fd); + for (e = intel_execution_engines; e->name; e++) { + /* default exec-id is purely symbolic */ + if (e->exec_id == 0) + continue; + + igt_subtest_f("extended-hang-%s", e->name) { + gem_require_ring(fd, e->exec_id | e->flags); + igt_skip_on_f(gen == 6 && + e->exec_id == I915_EXEC_BSD, + "MI_STORE_DATA broken on gen6 bsd\n"); + gem_quiescent_gpu(fd); + one(fd, e->exec_id, e->flags, HANG); + gem_quiescent_gpu(fd); + } } } + + igt_fixture { + igt_disallow_hang(fd, hang); + } } igt_fixture { |