diff mbox

drm/i915/selftests: Hide dangerous tests

Message ID 20171025153207.9589-1-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Chris Wilson Oct. 25, 2017, 3:32 p.m. UTC
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 <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@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(-)

Comments

Jani Nikula Oct. 26, 2017, 8:04 a.m. UTC | #1
On Wed, 25 Oct 2017, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> 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

Bugzilla: is the preferred tag to reference bugs that the patch fixes.

Reference: is more like, "see also". You can use it to reference bugs
too, but it generally doesn't imply that the bug gets fixed by the
patch.

At least that's what I've gone by for a very long time now.

BR,
Jani.

> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen@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),
Joonas Lahtinen Nov. 6, 2017, 10:47 a.m. UTC | #2
On Wed, 2017-10-25 at 16:32 +0100, Chris Wilson wrote:
> 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 <chris@chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Regards, Joonas
Chris Wilson Nov. 6, 2017, 1:23 p.m. UTC | #3
Quoting Joonas Lahtinen (2017-11-06 10:47:52)
> On Wed, 2017-10-25 at 16:32 +0100, Chris Wilson wrote:
> > 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 <chris@chris-wilson.co.uk>
> > Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> 
> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Applied and closed bug, so hopefully one less blocker towards getting
selftests being run.
-Chris
diff mbox

Patch

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),