Some tests are designed to exercise the limits of the HW and may trigger
unintended side-effects making the machine unusable. This should not be
executed by default, but are still useful for early platform validation.

References: https://bugs.freedesktop.org/show_bug.cgi?id=103453
Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
---
 drivers/gpu/drm/i915/Kconfig.debug            | 14 ++++++++++++++
 drivers/gpu/drm/i915/selftests/intel_uncore.c |  8 ++++----
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/Kconfig.debug 
b/drivers/gpu/drm/i915/Kconfig.debug
index aed7d207ea84..19c77c6feb24 100644
--- a/drivers/gpu/drm/i915/Kconfig.debug
+++ b/drivers/gpu/drm/i915/Kconfig.debug
@@ -90,6 +90,20 @@ config DRM_I915_SELFTEST
 
          If in doubt, say "N".
 
+config DRM_I915_SELFTEST_BROKEN
+       bool "Enable broken and dangerous selftests"
+       depends on DRM_I915_SELFTEST
+       depends on BROKEN
+       default n
+       help
+         This option enables the execution of selftests that are "dangerous"
+         and may trigger unintended HW side-effects as they break strict
+         rules given in the HW specification. For science.
+
+         Recommended for masochistic driver developers only.
+
+         If in doubt, say "N".
+
 config DRM_I915_LOW_LEVEL_TRACEPOINTS
         bool "Enable low level request tracing events"
         depends on DRM_I915
diff --git a/drivers/gpu/drm/i915/selftests/intel_uncore.c 
b/drivers/gpu/drm/i915/selftests/intel_uncore.c
index 3cac22eb47ce..f52a4ab9aa98 100644
--- a/drivers/gpu/drm/i915/selftests/intel_uncore.c
+++ b/drivers/gpu/drm/i915/selftests/intel_uncore.c
@@ -120,10 +120,10 @@ static int intel_uncore_check_forcewake_domains(struct 
drm_i915_private *dev_pri
            !IS_CHERRYVIEW(dev_priv))
                return 0;
 
-       if (IS_VALLEYVIEW(dev_priv)) /* XXX system lockup! */
-               return 0;
-
-       if (IS_BROADWELL(dev_priv)) /* XXX random GPU hang afterwards! */
+       /*
+        * This test may lockup the machine or cause GPU hangs afterwards.
+        */
+       if (!IS_ENABLED(CONFIG_DRM_I915_SELFTEST_BROKEN))
                return 0;
 
        valid = kzalloc(BITS_TO_LONGS(FW_RANGE) * sizeof(*valid),
-- 
2.15.0.rc2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to