diff mbox series

drm/i915: Don't call suspend_late() on GEM error load

Message ID 20180728123604.697-1-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show
Series drm/i915: Don't call suspend_late() on GEM error load | expand

Commit Message

Chris Wilson July 28, 2018, 12:36 p.m. UTC
The primary purpose of i915_gem_suspend_late is to ensure all writes
into memory from the GPU are flushed before we relinquish control of the
device. However, if we abort GEM initialisation, we ideally want to leave
the GPU marked as wedged, but still allow KMS in order to avoid the
black screen of doom. In this case, a path through suspend_late causes a
redundant and quite noisy reset as we have to then repeat it on wedging.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_gem.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Chris Wilson July 28, 2018, 2:26 p.m. UTC | #1
Quoting Patchwork (2018-07-28 14:08:35)
> == Series Details ==
> 
> Series: drm/i915: Don't call suspend_late() on GEM error load
> URL   : https://patchwork.freedesktop.org/series/47384/
> State : failure
> 
> == Summary ==
> 
> = CI Bug Log - changes from CI_DRM_4578 -> Patchwork_9802 =
> 
> == Summary - FAILURE ==
> 
>   Serious unknown changes coming with Patchwork_9802 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_9802, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: https://patchwork.freedesktop.org/api/1.0/series/47384/revisions/1/mbox/
> 
> == Possible new issues ==
> 
>   Here are the unknown changes that may have been introduced in Patchwork_9802:
> 
>   === IGT changes ===
> 
>     ==== Possible regressions ====
> 
>     igt@drv_module_reload@basic-reload-inject:
>       fi-skl-6260u:       PASS -> DMESG-FAIL
>       fi-snb-2600:        PASS -> DMESG-FAIL
>       fi-byt-j1900:       PASS -> DMESG-FAIL
>       fi-kbl-7560u:       PASS -> DMESG-FAIL
>       fi-kbl-guc:         PASS -> DMESG-FAIL
>       fi-skl-6770hq:      PASS -> DMESG-FAIL
>       fi-byt-n2820:       PASS -> DMESG-FAIL
>       fi-bxt-j4205:       PASS -> DMESG-FAIL
>       fi-bwr-2160:        PASS -> DMESG-FAIL
>       fi-kbl-r:           PASS -> DMESG-FAIL
>       fi-cfl-s3:          PASS -> DMESG-FAIL
>       {fi-cfl-8109u}:     PASS -> DMESG-FAIL
>       fi-snb-2520m:       PASS -> DMESG-FAIL
>       fi-gdg-551:         PASS -> DMESG-FAIL
>       {fi-bsw-kefka}:     PASS -> DMESG-FAIL
>       fi-bdw-gvtdvm:      PASS -> DMESG-FAIL
>       fi-ilk-650:         PASS -> DMESG-FAIL
>       fi-bsw-n3050:       PASS -> DMESG-FAIL
>       fi-kbl-7567u:       PASS -> DMESG-FAIL
>       fi-glk-j4005:       PASS -> DMESG-FAIL
>       {fi-skl-iommu}:     PASS -> DMESG-FAIL
>       fi-bxt-dsi:         PASS -> DMESG-FAIL
>       fi-ivb-3770:        PASS -> DMESG-FAIL
>       fi-skl-gvtdvm:      PASS -> DMESG-FAIL
>       fi-whl-u:           PASS -> DMESG-FAIL
>       fi-skl-6700hq:      PASS -> DMESG-FAIL
>       fi-kbl-7500u:       PASS -> DMESG-FAIL
>       fi-ivb-3520m:       PASS -> DMESG-FAIL
>       fi-hsw-4770:        PASS -> DMESG-FAIL
>       {fi-bdw-samus}:     PASS -> DMESG-FAIL
>       fi-glk-dsi:         PASS -> DMESG-FAIL
>       fi-bdw-5557u:       PASS -> DMESG-FAIL
>       fi-cfl-8700k:       PASS -> DMESG-FAIL
>       fi-hsw-peppy:       PASS -> DMESG-FAIL
>       fi-kbl-x1275:       PASS -> DMESG-FAIL
>       fi-skl-6600u:       PASS -> DMESG-FAIL
>       fi-pnv-d510:        PASS -> DMESG-FAIL
>       fi-hsw-4770r:       PASS -> DMESG-FAIL
>       fi-skl-guc:         PASS -> DMESG-FAIL
>       fi-cfl-guc:         PASS -> DMESG-FAIL
>       fi-blb-e6850:       PASS -> DMESG-FAIL
>       fi-skl-6700k2:      PASS -> DMESG-FAIL
>       fi-elk-e7500:       PASS -> DMESG-FAIL

Super annoying. For the moment, we'll just have to put up with the
occasional spam if the GPU dies during boot.
-Chris
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 460f256114f7..e937977a4f7b 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -5571,8 +5571,6 @@  int i915_gem_init(struct drm_i915_private *dev_priv)
 	mutex_unlock(&dev_priv->drm.struct_mutex);
 
 	WARN_ON(i915_gem_suspend(dev_priv));
-	i915_gem_suspend_late(dev_priv);
-
 	i915_gem_drain_workqueue(dev_priv);
 
 	mutex_lock(&dev_priv->drm.struct_mutex);
@@ -5619,6 +5617,8 @@  int i915_gem_init(struct drm_i915_private *dev_priv)
 		intel_init_clock_gating(dev_priv);
 
 		mutex_unlock(&dev_priv->drm.struct_mutex);
+	} else {
+		i915_gem_sanitize(dev_priv);
 	}
 
 	i915_gem_drain_freed_objects(dev_priv);