summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Thierry <michel.thierry@intel.com>2017-06-28 11:37:33 -0700
committerArkadiusz Hiler <arkadiusz.hiler@intel.com>2017-07-17 11:34:20 +0300
commit1b4d6e506f73ba5b0cff35684f2c0b4bef930213 (patch)
tree111ef71ac137b0fea9735e680d67728b7eb0718d
parentbcb9d6f8b9f93610bf5964381431eef5c0dfa675 (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>
-rw-r--r--tests/gem_reset_stats.c20
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);
+ }
}