diff options
author | Michel Thierry <michel.thierry@intel.com> | 2017-06-28 11:37:33 -0700 |
---|---|---|
committer | Arkadiusz Hiler <arkadiusz.hiler@intel.com> | 2017-07-17 11:34:20 +0300 |
commit | 1b4d6e506f73ba5b0cff35684f2c0b4bef930213 (patch) | |
tree | 111ef71ac137b0fea9735e680d67728b7eb0718d /tests/gem_reset_stats.c | |
parent | bcb9d6f8b9f93610bf5964381431eef5c0dfa675 (diff) |
tests/gem_reset_stats: Enforce full chip reset mode before run
Platforms with per-engine reset enabled (i915.reset=2) are unlikely to
perform a full chip reset, keeping the reset_count unmodified. In order
to keep the expectations of this test, enforce that full GPU reset is
enabled (i915.reset=1).
Later on, we can expand the reset_stats ioctl to also return the number
of per-engine resets and use reset_count + reset_engine_count when
checking for the updated reset count.
v2: Rebase, don't use gem_gpu_reset_type directly, since we now have
additional helpers.
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Diffstat (limited to 'tests/gem_reset_stats.c')
-rw-r--r-- | tests/gem_reset_stats.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/gem_reset_stats.c b/tests/gem_reset_stats.c index 73afeeb2..9ac08aab 100644 --- a/tests/gem_reset_stats.c +++ b/tests/gem_reset_stats.c @@ -27,6 +27,8 @@ #define _GNU_SOURCE #include "igt.h" +#include "igt_sysfs.h" +#include <limits.h> #include <stdbool.h> #include <unistd.h> #include <stdlib.h> @@ -777,15 +779,24 @@ igt_main int fd; bool has_reset_stats; + bool using_full_reset; fd = drm_open_driver(DRIVER_INTEL); devid = intel_get_drm_devid(fd); has_reset_stats = gem_has_reset_stats(fd); + igt_assert(igt_sysfs_set_parameter + (fd, "reset", "%d", 1 /* only global reset */)); + + using_full_reset = !gem_engine_reset_enabled(fd) && + gem_gpu_reset_enabled(fd); + close(fd); igt_require_f(has_reset_stats, "No reset stats ioctl support. Too old kernel?\n"); + igt_require_f(using_full_reset, + "Full GPU reset is not enabled. Is enable_hangcheck set?\n"); } igt_subtest("params") @@ -831,4 +842,13 @@ igt_main igt_subtest_f("defer-hangcheck-%s", e->name) RUN_TEST(defer_hangcheck(e)); } + + igt_fixture { + int fd; + + fd = drm_open_driver(DRIVER_INTEL); + igt_assert(igt_sysfs_set_parameter + (fd, "reset", "%d", INT_MAX /* any reset method */)); + close(fd); + } } |