* [PATCH] drm/i915: Unwind i915_gem_init() failure
@ 2017-12-07 23:56 Chris Wilson
2017-12-08 0:20 ` ✓ Fi.CI.BAT: success for " Patchwork
` (11 more replies)
0 siblings, 12 replies; 17+ messages in thread
From: Chris Wilson @ 2017-12-07 23:56 UTC (permalink / raw)
To: intel-gfx
Since Michal introduced new errors other than -EIO during
i915_gem_init(), we need to actually unwind on the error path as we have
to abort the module load (and we expect to do so cleanly!).
As we now teardown key state and then mark the driver as wedged (on
EIO), we have to be careful to not allow ourselves to resume and
unwedge, thus attempting to use the uninitialised driver.
References: 8620eb1dbbf2 ("drm/i915/uc: Don't use -EIO to report missing firmware")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
---
drivers/gpu/drm/i915/i915_gem.c | 55 ++++++++++++++++++++++++++++++++---------
1 file changed, 43 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 67dc11effc8e..a6a7ce861c37 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3245,7 +3245,12 @@ bool i915_gem_unset_wedged(struct drm_i915_private *i915)
if (!test_bit(I915_WEDGED, &i915->gpu_error.flags))
return true;
- /* Before unwedging, make sure that all pending operations
+ /* Never successfully initialised, so can not unwedge? */
+ if (!i915->kernel_context)
+ return false;
+
+ /*
+ * Before unwedging, make sure that all pending operations
* are flushed and errored out - we may have requests waiting upon
* third party fences. We marked all inflight requests as EIO, and
* every execbuf since returned EIO, for consistency we want all
@@ -4863,7 +4868,8 @@ void i915_gem_resume(struct drm_i915_private *i915)
i915_gem_restore_gtt_mappings(i915);
i915_gem_restore_fences(i915);
- /* As we didn't flush the kernel context before suspend, we cannot
+ /*
+ * As we didn't flush the kernel context before suspend, we cannot
* guarantee that the context image is complete. So let's just reset
* it and start again.
*/
@@ -4884,8 +4890,10 @@ void i915_gem_resume(struct drm_i915_private *i915)
return;
err_wedged:
- DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
- i915_gem_set_wedged(i915);
+ if (!i915_terminally_wedged(&i915->gpu_error)) {
+ DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
+ i915_gem_set_wedged(i915);
+ }
goto out_unlock;
}
@@ -5169,21 +5177,21 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
ret = i915_gem_init_ggtt(dev_priv);
if (ret)
- goto out_unlock;
+ goto err_unlock;
ret = i915_gem_contexts_init(dev_priv);
if (ret)
- goto out_unlock;
+ goto err_ggtt;
ret = intel_engines_init(dev_priv);
if (ret)
- goto out_unlock;
+ goto err_context;
intel_init_gt_powersave(dev_priv);
ret = i915_gem_init_hw(dev_priv);
if (ret)
- goto out_unlock;
+ goto err_pm;
/*
* Despite its name intel_init_clock_gating applies both display
@@ -5197,9 +5205,33 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
intel_init_clock_gating(dev_priv);
ret = __intel_engines_record_defaults(dev_priv);
-out_unlock:
+ if (ret)
+ goto err_init_hw;
+
+ intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+ mutex_unlock(&dev_priv->drm.struct_mutex);
+
+ return 0;
+
+err_init_hw:
+ i915_gem_wait_for_idle(dev_priv, I915_WAIT_LOCKED);
+ i915_gem_contexts_lost(dev_priv);
+ intel_uc_fini_hw(dev_priv);
+err_pm:
+ intel_cleanup_gt_powersave(dev_priv);
+ i915_gem_cleanup_engines(dev_priv);
+err_context:
+ i915_gem_contexts_fini(dev_priv);
+err_ggtt:
+err_unlock:
+ intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+ mutex_unlock(&dev_priv->drm.struct_mutex);
+
+ i915_gem_cleanup_userptr(dev_priv);
+
if (ret == -EIO) {
- /* Allow engine initialisation to fail by marking the GPU as
+ /*
+ * Allow engine initialisation to fail by marking the GPU as
* wedged. But we only want to do this where the GPU is angry,
* for all other failure, such as an allocation failure, bail.
*/
@@ -5209,9 +5241,8 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
}
ret = 0;
}
- intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
- mutex_unlock(&dev_priv->drm.struct_mutex);
+ i915_gem_drain_freed_objects(dev_priv);
return ret;
}
--
2.15.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 17+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
@ 2017-12-08 0:20 ` Patchwork
2017-12-08 0:29 ` [PATCH] " Chris Wilson
` (10 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-12-08 0:20 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Unwind i915_gem_init() failure
URL : https://patchwork.freedesktop.org/series/35060/
State : success
== Summary ==
Series 35060v1 drm/i915: Unwind i915_gem_init() failure
https://patchwork.freedesktop.org/api/1.0/series/35060/revisions/1/mbox/
fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:440s
fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:386s
fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:519s
fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:284s
fi-bxt-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:507s
fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:515s
fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:495s
fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:477s
fi-elk-e7500 total:224 pass:163 dwarn:14 dfail:1 fail:0 skip:45
fi-gdg-551 total:288 pass:178 dwarn:1 dfail:0 fail:1 skip:108 time:272s
fi-glk-1 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:539s
fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:392s
fi-hsw-4770r total:288 pass:224 dwarn:0 dfail:0 fail:0 skip:64 time:266s
fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:396s
fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:475s
fi-ivb-3770 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:451s
fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:487s
fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:527s
fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:476s
fi-kbl-r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:538s
fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:596s
fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:449s
fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:543s
fi-skl-6700hq total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:570s
fi-skl-6700k total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:523s
fi-skl-6770hq total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:508s
fi-skl-gvtdvm total:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:449s
fi-snb-2520m total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:553s
fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:424s
Blacklisted hosts:
fi-cfl-s2 total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:604s
fi-cnl-y total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:634s
fi-glk-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:491s
fb6aa7cd0d6bfa86efb7a87938733f1272414690 drm-tip: 2017y-12m-07d-17h-43m-29s UTC integration manifest
6f200019aba0 drm/i915: Unwind i915_gem_init() failure
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7447/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915: Unwind i915_gem_init() failure
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
2017-12-08 0:20 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2017-12-08 0:29 ` Chris Wilson
2017-12-08 1:17 ` [PATCH v2] " Chris Wilson
` (9 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2017-12-08 0:29 UTC (permalink / raw)
To: intel-gfx
Quoting Chris Wilson (2017-12-07 23:56:25)
> Since Michal introduced new errors other than -EIO during
> i915_gem_init(), we need to actually unwind on the error path as we have
> to abort the module load (and we expect to do so cleanly!).
>
> As we now teardown key state and then mark the driver as wedged (on
> EIO), we have to be careful to not allow ourselves to resume and
> unwedge, thus attempting to use the uninitialised driver.
Hmm, I don't think this is sufficient just yet, e.g. execbuf should now
report -EINVAL for the absent engine as opposed to -EIO we expect.
Context allocation will still hit uninitialised idr etc.
Back to the plan of having if (ret != -EIO) at each point, I guess.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH v2] drm/i915: Unwind i915_gem_init() failure
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
2017-12-08 0:20 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-12-08 0:29 ` [PATCH] " Chris Wilson
@ 2017-12-08 1:17 ` Chris Wilson
2017-12-08 22:32 ` Michał Winiarski
2017-12-08 1:53 ` ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev2) Patchwork
` (8 subsequent siblings)
11 siblings, 1 reply; 17+ messages in thread
From: Chris Wilson @ 2017-12-08 1:17 UTC (permalink / raw)
To: intel-gfx
Since Michal introduced new errors other than -EIO during
i915_gem_init(), we need to actually unwind on the error path as we have
to abort the module load (and we expect to do so cleanly!).
As we now teardown key state and then mark the driver as wedged (on
EIO), we have to be careful to not allow ourselves to resume and
unwedge, thus attempting to use the uninitialised driver.
v2: Try not to free driver state for the suppressed EIO
References: 8620eb1dbbf2 ("drm/i915/uc: Don't use -EIO to report missing firmware")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
drivers/gpu/drm/i915/i915_gem.c | 82 +++++++++++++++++++++++++++++++++--------
1 file changed, 67 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index c7b5db78fbb4..ee243e1ef706 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3235,7 +3235,12 @@ bool i915_gem_unset_wedged(struct drm_i915_private *i915)
if (!test_bit(I915_WEDGED, &i915->gpu_error.flags))
return true;
- /* Before unwedging, make sure that all pending operations
+ /* Never successfully initialised, so can not unwedge? */
+ if (!i915->kernel_context)
+ return false;
+
+ /*
+ * Before unwedging, make sure that all pending operations
* are flushed and errored out - we may have requests waiting upon
* third party fences. We marked all inflight requests as EIO, and
* every execbuf since returned EIO, for consistency we want all
@@ -4853,7 +4858,8 @@ void i915_gem_resume(struct drm_i915_private *i915)
i915_gem_restore_gtt_mappings(i915);
i915_gem_restore_fences(i915);
- /* As we didn't flush the kernel context before suspend, we cannot
+ /*
+ * As we didn't flush the kernel context before suspend, we cannot
* guarantee that the context image is complete. So let's just reset
* it and start again.
*/
@@ -4874,8 +4880,10 @@ void i915_gem_resume(struct drm_i915_private *i915)
return;
err_wedged:
- DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
- i915_gem_set_wedged(i915);
+ if (!i915_terminally_wedged(&i915->gpu_error)) {
+ DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
+ i915_gem_set_wedged(i915);
+ }
goto out_unlock;
}
@@ -5158,22 +5166,28 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
ret = i915_gem_init_ggtt(dev_priv);
- if (ret)
- goto out_unlock;
+ if (ret) {
+ GEM_BUG_ON(ret == -EIO);
+ goto err_unlock;
+ }
ret = i915_gem_contexts_init(dev_priv);
- if (ret)
- goto out_unlock;
+ if (ret) {
+ GEM_BUG_ON(ret == -EIO);
+ goto err_ggtt;
+ }
ret = intel_engines_init(dev_priv);
- if (ret)
- goto out_unlock;
+ if (ret) {
+ GEM_BUG_ON(ret == -EIO);
+ goto err_context;
+ }
intel_init_gt_powersave(dev_priv);
ret = i915_gem_init_hw(dev_priv);
if (ret)
- goto out_unlock;
+ goto err_pm;
/*
* Despite its name intel_init_clock_gating applies both display
@@ -5187,9 +5201,48 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
intel_init_clock_gating(dev_priv);
ret = __intel_engines_record_defaults(dev_priv);
-out_unlock:
+ if (ret)
+ goto err_init_hw;
+
+ if (i915_inject_load_failure()) {
+ ret = -EIO;
+ goto err_init_hw;
+ }
+
+ intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+ mutex_unlock(&dev_priv->drm.struct_mutex);
+
+ return 0;
+
+ /*
+ * Unwinding is complicated by that we want to handle -EIO to mean
+ * disable GPU submission but keep KMS alive. We want to mark the
+ * HW as irrevisibly wedged, but keep enough state around that the
+ * driver doesn't explode during runtime.
+ */
+err_init_hw:
+ i915_gem_wait_for_idle(dev_priv, I915_WAIT_LOCKED);
+ i915_gem_contexts_lost(dev_priv);
+ intel_uc_fini_hw(dev_priv);
+err_pm:
+ if (ret != -EIO) {
+ intel_cleanup_gt_powersave(dev_priv);
+ i915_gem_cleanup_engines(dev_priv);
+ }
+err_context:
+ if (ret != -EIO)
+ i915_gem_contexts_fini(dev_priv);
+err_ggtt:
+err_unlock:
+ intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+ mutex_unlock(&dev_priv->drm.struct_mutex);
+
+ if (ret != -EIO)
+ i915_gem_cleanup_userptr(dev_priv);
+
if (ret == -EIO) {
- /* Allow engine initialisation to fail by marking the GPU as
+ /*
+ * Allow engine initialisation to fail by marking the GPU as
* wedged. But we only want to do this where the GPU is angry,
* for all other failure, such as an allocation failure, bail.
*/
@@ -5199,9 +5252,8 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
}
ret = 0;
}
- intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
- mutex_unlock(&dev_priv->drm.struct_mutex);
+ i915_gem_drain_freed_objects(dev_priv);
return ret;
}
--
2.15.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 17+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev2)
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
` (2 preceding siblings ...)
2017-12-08 1:17 ` [PATCH v2] " Chris Wilson
@ 2017-12-08 1:53 ` Patchwork
2017-12-08 2:17 ` ✗ Fi.CI.IGT: warning for drm/i915: Unwind i915_gem_init() failure Patchwork
` (7 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-12-08 1:53 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Unwind i915_gem_init() failure (rev2)
URL : https://patchwork.freedesktop.org/series/35060/
State : success
== Summary ==
Series 35060v2 drm/i915: Unwind i915_gem_init() failure
https://patchwork.freedesktop.org/api/1.0/series/35060/revisions/2/mbox/
Test gem_exec_reloc:
Subgroup basic-cpu-active:
fail -> PASS (fi-gdg-551) fdo#102582 +2
fdo#102582 https://bugs.freedesktop.org/show_bug.cgi?id=102582
fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:438s
fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:384s
fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:516s
fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:283s
fi-bxt-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:504s
fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:507s
fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:490s
fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:481s
fi-elk-e7500 total:224 pass:163 dwarn:15 dfail:0 fail:0 skip:45
fi-gdg-551 total:288 pass:178 dwarn:1 dfail:0 fail:1 skip:108 time:270s
fi-glk-1 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:539s
fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:372s
fi-hsw-4770r total:288 pass:224 dwarn:0 dfail:0 fail:0 skip:64 time:260s
fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:390s
fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:475s
fi-ivb-3770 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:444s
fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:489s
fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:528s
fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:479s
fi-kbl-r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:535s
fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:584s
fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:458s
fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:541s
fi-skl-6700hq total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:564s
fi-skl-6700k total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:518s
fi-skl-6770hq total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:498s
fi-skl-gvtdvm total:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:447s
fi-snb-2520m total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:547s
fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:414s
Blacklisted hosts:
fi-cfl-s2 total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:610s
fi-glk-dsi total:288 pass:179 dwarn:1 dfail:4 fail:0 skip:104 time:356s
4cfc9f8c17ce9dea8a9afd28f0e73554f780619b drm-tip: 2017y-12m-08d-01h-05m-46s UTC integration manifest
4bbbe2e590e9 drm/i915: Unwind i915_gem_init() failure
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7448/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✗ Fi.CI.IGT: warning for drm/i915: Unwind i915_gem_init() failure
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
` (3 preceding siblings ...)
2017-12-08 1:53 ` ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev2) Patchwork
@ 2017-12-08 2:17 ` Patchwork
2017-12-08 3:34 ` ✗ Fi.CI.IGT: failure for drm/i915: Unwind i915_gem_init() failure (rev2) Patchwork
` (6 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-12-08 2:17 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Unwind i915_gem_init() failure
URL : https://patchwork.freedesktop.org/series/35060/
State : warning
== Summary ==
Test drv_module_reload:
Subgroup basic-reload:
pass -> DMESG-WARN (shard-snb) fdo#102848
Test kms_flip:
Subgroup flip-vs-panning:
incomplete -> PASS (shard-hsw)
Test kms_cursor_crc:
Subgroup cursor-128x128-offscreen:
notrun -> INCOMPLETE (shard-hsw)
Subgroup cursor-256x85-sliding:
pass -> SKIP (shard-hsw)
Test gem_eio:
Subgroup in-flight:
pass -> DMESG-WARN (shard-snb) fdo#104058
Test kms_frontbuffer_tracking:
Subgroup fbc-1p-primscrn-pri-shrfb-draw-blt:
pass -> SKIP (shard-hsw) fdo#101623 +1
Test kms_plane_lowres:
Subgroup pipe-c-tiling-x:
pass -> SKIP (shard-hsw)
Test kms_pipe_crc_basic:
Subgroup read-crc-pipe-b:
incomplete -> PASS (shard-hsw)
fdo#102848 https://bugs.freedesktop.org/show_bug.cgi?id=102848
fdo#104058 https://bugs.freedesktop.org/show_bug.cgi?id=104058
fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
shard-hsw total:2672 pass:1526 dwarn:1 dfail:0 fail:10 skip:1134 time:9046s
shard-snb total:2679 pass:1306 dwarn:3 dfail:0 fail:12 skip:1358 time:8150s
Blacklisted hosts:
shard-apl total:2679 pass:1679 dwarn:1 dfail:0 fail:22 skip:977 time:13723s
shard-kbl total:2548 pass:1709 dwarn:2 dfail:0 fail:25 skip:810 time:10506s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7447/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✗ Fi.CI.IGT: failure for drm/i915: Unwind i915_gem_init() failure (rev2)
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
` (4 preceding siblings ...)
2017-12-08 2:17 ` ✗ Fi.CI.IGT: warning for drm/i915: Unwind i915_gem_init() failure Patchwork
@ 2017-12-08 3:34 ` Patchwork
2017-12-11 11:19 ` [PATCH v3] drm/i915: Unwind i915_gem_init() failure Chris Wilson
` (5 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-12-08 3:34 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Unwind i915_gem_init() failure (rev2)
URL : https://patchwork.freedesktop.org/series/35060/
State : failure
== Summary ==
Test kms_frontbuffer_tracking:
Subgroup fbc-1p-offscren-pri-shrfb-draw-render:
pass -> FAIL (shard-snb) fdo#101623
Subgroup fbc-1p-primscrn-pri-indfb-draw-blt:
fail -> PASS (shard-snb)
Test drv_suspend:
Subgroup fence-restore-tiled2untiled-hibernate:
skip -> FAIL (shard-hsw) fdo#103375 +1
Subgroup forcewake:
pass -> SKIP (shard-snb)
Test kms_setmode:
Subgroup basic:
fail -> PASS (shard-hsw) fdo#99912
Test pm_rc6_residency:
Subgroup rc6-accuracy:
pass -> SKIP (shard-snb)
Test kms_cursor_legacy:
Subgroup flip-vs-cursor-toggle:
pass -> SKIP (shard-snb)
Test kms_busy:
Subgroup extended-modeset-hang-oldfb-with-reset-render-b:
pass -> SKIP (shard-snb)
Subgroup extended-modeset-hang-oldfb-render-a:
pass -> SKIP (shard-snb)
Test kms_plane_multiple:
Subgroup legacy-pipe-a-tiling-none:
pass -> SKIP (shard-snb)
Test kms_cursor_crc:
Subgroup cursor-128x128-offscreen:
pass -> INCOMPLETE (shard-hsw)
Test drv_module_reload:
Subgroup basic-reload:
dmesg-warn -> PASS (shard-snb) fdo#102848
fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
fdo#102848 https://bugs.freedesktop.org/show_bug.cgi?id=102848
shard-hsw total:2672 pass:1529 dwarn:2 dfail:0 fail:9 skip:1131 time:9072s
shard-snb total:2679 pass:1302 dwarn:1 dfail:0 fail:12 skip:1364 time:8037s
Blacklisted hosts:
shard-kbl total:2620 pass:1750 dwarn:13 dfail:2 fail:22 skip:832 time:10731s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7448/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v2] drm/i915: Unwind i915_gem_init() failure
2017-12-08 1:17 ` [PATCH v2] " Chris Wilson
@ 2017-12-08 22:32 ` Michał Winiarski
2017-12-08 22:46 ` Chris Wilson
0 siblings, 1 reply; 17+ messages in thread
From: Michał Winiarski @ 2017-12-08 22:32 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
On Fri, Dec 08, 2017 at 01:17:20AM +0000, Chris Wilson wrote:
> Since Michal introduced new errors other than -EIO during
> i915_gem_init(), we need to actually unwind on the error path as we have
> to abort the module load (and we expect to do so cleanly!).
>
> As we now teardown key state and then mark the driver as wedged (on
> EIO), we have to be careful to not allow ourselves to resume and
> unwedge, thus attempting to use the uninitialised driver.
>
> v2: Try not to free driver state for the suppressed EIO
>
> References: 8620eb1dbbf2 ("drm/i915/uc: Don't use -EIO to report missing firmware")
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/i915_gem.c | 82 +++++++++++++++++++++++++++++++++--------
> 1 file changed, 67 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index c7b5db78fbb4..ee243e1ef706 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
[SNIP]
> +err_ggtt:
> +err_unlock:
So... Just unlock? :>
Does what it says on the tin (fixing WARN_ON galore on guc load failure):
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
-Michał
> + intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
> + mutex_unlock(&dev_priv->drm.struct_mutex);
> +
> + if (ret != -EIO)
> + i915_gem_cleanup_userptr(dev_priv);
> +
> if (ret == -EIO) {
> - /* Allow engine initialisation to fail by marking the GPU as
> + /*
> + * Allow engine initialisation to fail by marking the GPU as
> * wedged. But we only want to do this where the GPU is angry,
> * for all other failure, such as an allocation failure, bail.
> */
> @@ -5199,9 +5252,8 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
> }
> ret = 0;
> }
> - intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
> - mutex_unlock(&dev_priv->drm.struct_mutex);
>
> + i915_gem_drain_freed_objects(dev_priv);
> return ret;
> }
>
> --
> 2.15.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v2] drm/i915: Unwind i915_gem_init() failure
2017-12-08 22:32 ` Michał Winiarski
@ 2017-12-08 22:46 ` Chris Wilson
0 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2017-12-08 22:46 UTC (permalink / raw)
To: Michał Winiarski; +Cc: intel-gfx
Quoting Michał Winiarski (2017-12-08 22:32:40)
> On Fri, Dec 08, 2017 at 01:17:20AM +0000, Chris Wilson wrote:
> > Since Michal introduced new errors other than -EIO during
> > i915_gem_init(), we need to actually unwind on the error path as we have
> > to abort the module load (and we expect to do so cleanly!).
> >
> > As we now teardown key state and then mark the driver as wedged (on
> > EIO), we have to be careful to not allow ourselves to resume and
> > unwedge, thus attempting to use the uninitialised driver.
> >
> > v2: Try not to free driver state for the suppressed EIO
> >
> > References: 8620eb1dbbf2 ("drm/i915/uc: Don't use -EIO to report missing firmware")
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> > Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> > Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > ---
> > drivers/gpu/drm/i915/i915_gem.c | 82 +++++++++++++++++++++++++++++++++--------
> > 1 file changed, 67 insertions(+), 15 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> > index c7b5db78fbb4..ee243e1ef706 100644
> > --- a/drivers/gpu/drm/i915/i915_gem.c
> > +++ b/drivers/gpu/drm/i915/i915_gem.c
>
> [SNIP]
>
> > +err_ggtt:
> > +err_unlock:
>
> So... Just unlock? :>
Nothing to see here, please move along. I was caught by surprise that we
didn't have an immediate cleanup for err_ggtt.
>
> Does what it says on the tin (fixing WARN_ON galore on guc load failure):
>
> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Bug not in an elegant way, going it the w/e and see if someone comes up
with a better way.
As a note to self, if we also have a
if (i915_inject_load_failure())
return -ENODEV;
then we will automatically exercise both failure methods.
I say automatically, except basic-reload-inject uses a hard-coded max
number of passes. Fantastic.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH v3] drm/i915: Unwind i915_gem_init() failure
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
` (5 preceding siblings ...)
2017-12-08 3:34 ` ✗ Fi.CI.IGT: failure for drm/i915: Unwind i915_gem_init() failure (rev2) Patchwork
@ 2017-12-11 11:19 ` Chris Wilson
2017-12-11 13:04 ` ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev3) Patchwork
` (4 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2017-12-11 11:19 UTC (permalink / raw)
To: intel-gfx
Since Michal introduced new errors other than -EIO during
i915_gem_init(), we need to actually unwind on the error path as we have
to abort the module load (and we expect to do so cleanly!).
As we now teardown key state and then mark the driver as wedged (on
EIO), we have to be careful to not allow ourselves to resume and
unwedge, thus attempting to use the uninitialised driver.
v2: Try not to free driver state for the suppressed EIO
v3: Use load-fault-injection to test both error/recovery paths.
References: 8620eb1dbbf2 ("drm/i915/uc: Don't use -EIO to report missing firmware")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
---
drivers/gpu/drm/i915/i915_gem.c | 80 +++++++++++++++++++++++++++++++++--------
1 file changed, 66 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index fcc9b53864f0..0179fdcaef11 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4856,7 +4856,8 @@ void i915_gem_resume(struct drm_i915_private *i915)
i915_gem_restore_gtt_mappings(i915);
i915_gem_restore_fences(i915);
- /* As we didn't flush the kernel context before suspend, we cannot
+ /*
+ * As we didn't flush the kernel context before suspend, we cannot
* guarantee that the context image is complete. So let's just reset
* it and start again.
*/
@@ -4877,8 +4878,10 @@ void i915_gem_resume(struct drm_i915_private *i915)
return;
err_wedged:
- DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
- i915_gem_set_wedged(i915);
+ if (!i915_terminally_wedged(&i915->gpu_error)) {
+ DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
+ i915_gem_set_wedged(i915);
+ }
goto out_unlock;
}
@@ -5161,22 +5164,28 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
ret = i915_gem_init_ggtt(dev_priv);
- if (ret)
- goto out_unlock;
+ if (ret) {
+ GEM_BUG_ON(ret == -EIO);
+ goto err_unlock;
+ }
ret = i915_gem_contexts_init(dev_priv);
- if (ret)
- goto out_unlock;
+ if (ret) {
+ GEM_BUG_ON(ret == -EIO);
+ goto err_ggtt;
+ }
ret = intel_engines_init(dev_priv);
- if (ret)
- goto out_unlock;
+ if (ret) {
+ GEM_BUG_ON(ret == -EIO);
+ goto err_context;
+ }
intel_init_gt_powersave(dev_priv);
ret = i915_gem_init_hw(dev_priv);
if (ret)
- goto out_unlock;
+ goto err_pm;
/*
* Despite its name intel_init_clock_gating applies both display
@@ -5190,9 +5199,53 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
intel_init_clock_gating(dev_priv);
ret = __intel_engines_record_defaults(dev_priv);
-out_unlock:
+ if (ret)
+ goto err_init_hw;
+
+ if (i915_inject_load_failure()) {
+ ret = -ENODEV;
+ goto err_init_hw;
+ }
+
+ if (i915_inject_load_failure()) {
+ ret = -EIO;
+ goto err_init_hw;
+ }
+
+ intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+ mutex_unlock(&dev_priv->drm.struct_mutex);
+
+ return 0;
+
+ /*
+ * Unwinding is complicated by that we want to handle -EIO to mean
+ * disable GPU submission but keep KMS alive. We want to mark the
+ * HW as irrevisibly wedged, but keep enough state around that the
+ * driver doesn't explode during runtime.
+ */
+err_init_hw:
+ i915_gem_wait_for_idle(dev_priv, I915_WAIT_LOCKED);
+ i915_gem_contexts_lost(dev_priv);
+ intel_uc_fini_hw(dev_priv);
+err_pm:
+ if (ret != -EIO) {
+ intel_cleanup_gt_powersave(dev_priv);
+ i915_gem_cleanup_engines(dev_priv);
+ }
+err_context:
+ if (ret != -EIO)
+ i915_gem_contexts_fini(dev_priv);
+err_ggtt:
+err_unlock:
+ intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+ mutex_unlock(&dev_priv->drm.struct_mutex);
+
+ if (ret != -EIO)
+ i915_gem_cleanup_userptr(dev_priv);
+
if (ret == -EIO) {
- /* Allow engine initialisation to fail by marking the GPU as
+ /*
+ * Allow engine initialisation to fail by marking the GPU as
* wedged. But we only want to do this where the GPU is angry,
* for all other failure, such as an allocation failure, bail.
*/
@@ -5202,9 +5255,8 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
}
ret = 0;
}
- intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
- mutex_unlock(&dev_priv->drm.struct_mutex);
+ i915_gem_drain_freed_objects(dev_priv);
return ret;
}
--
2.15.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 17+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev3)
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
` (6 preceding siblings ...)
2017-12-11 11:19 ` [PATCH v3] drm/i915: Unwind i915_gem_init() failure Chris Wilson
@ 2017-12-11 13:04 ` Patchwork
2017-12-11 13:17 ` Chris Wilson
2017-12-11 14:27 ` ✗ Fi.CI.IGT: failure " Patchwork
` (3 subsequent siblings)
11 siblings, 1 reply; 17+ messages in thread
From: Patchwork @ 2017-12-11 13:04 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Unwind i915_gem_init() failure (rev3)
URL : https://patchwork.freedesktop.org/series/35060/
State : success
== Summary ==
Series 35060v3 drm/i915: Unwind i915_gem_init() failure
https://patchwork.freedesktop.org/api/1.0/series/35060/revisions/3/mbox/
Test debugfs_test:
Subgroup read_all_entries:
pass -> DMESG-FAIL (fi-elk-e7500) fdo#103989 +1
Test gem_exec_fence:
Subgroup nb-await-default:
dmesg-fail -> PASS (fi-pnv-d510)
Test gem_exec_reloc:
Subgroup basic-cpu-read-active:
pass -> FAIL (fi-gdg-551) fdo#102582 +2
Test gem_mmap_gtt:
Subgroup basic-small-bo-tiledx:
fail -> PASS (fi-gdg-551) fdo#102575
Test kms_cursor_legacy:
Subgroup basic-busy-flip-before-cursor-legacy:
fail -> PASS (fi-gdg-551) fdo#102618
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-a:
pass -> DMESG-WARN (fi-kbl-r) fdo#104172 +1
Subgroup suspend-read-crc-pipe-b:
incomplete -> PASS (fi-snb-2520m) fdo#103713
fdo#103989 https://bugs.freedesktop.org/show_bug.cgi?id=103989
fdo#102582 https://bugs.freedesktop.org/show_bug.cgi?id=102582
fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575
fdo#102618 https://bugs.freedesktop.org/show_bug.cgi?id=102618
fdo#104172 https://bugs.freedesktop.org/show_bug.cgi?id=104172
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:442s
fi-bdw-gvtdvm total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:446s
fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:390s
fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:526s
fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:283s
fi-bxt-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:508s
fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:521s
fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:495s
fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:481s
fi-elk-e7500 total:224 pass:163 dwarn:14 dfail:1 fail:0 skip:45
fi-gdg-551 total:288 pass:176 dwarn:1 dfail:0 fail:3 skip:108 time:276s
fi-glk-1 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:538s
fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:375s
fi-hsw-4770r total:288 pass:224 dwarn:0 dfail:0 fail:0 skip:64 time:263s
fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:394s
fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:487s
fi-ivb-3770 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:453s
fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:490s
fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:529s
fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:478s
fi-kbl-r total:288 pass:260 dwarn:1 dfail:0 fail:0 skip:27 time:539s
fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:597s
fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:461s
fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:553s
fi-skl-6700hq total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:573s
fi-skl-6700k total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:522s
fi-skl-6770hq total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:510s
fi-skl-gvtdvm total:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:453s
fi-snb-2520m total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:555s
fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:420s
Blacklisted hosts:
fi-cfl-s2 total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:596s
fi-glk-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:498s
fi-cnl-y failed to collect. IGT log at Patchwork_7464/fi-cnl-y/igt.log
6c0bf00e417c7d37409f87be775ff98c76505350 drm-tip: 2017y-12m-10d-18h-32m-45s UTC integration manifest
558440192e7f drm/i915: Unwind i915_gem_init() failure
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7464/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev3)
2017-12-11 13:04 ` ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev3) Patchwork
@ 2017-12-11 13:17 ` Chris Wilson
0 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2017-12-11 13:17 UTC (permalink / raw)
To: Patchwork; +Cc: intel-gfx
Quoting Patchwork (2017-12-11 13:04:37)
> == Series Details ==
>
> Series: drm/i915: Unwind i915_gem_init() failure (rev3)
> URL : https://patchwork.freedesktop.org/series/35060/
> State : success
>
> == Summary ==
>
> Series 35060v3 drm/i915: Unwind i915_gem_init() failure
> https://patchwork.freedesktop.org/api/1.0/series/35060/revisions/3/mbox/
>
> Test debugfs_test:
> Subgroup read_all_entries:
> pass -> DMESG-FAIL (fi-elk-e7500) fdo#103989 +1
> Test gem_exec_fence:
> Subgroup nb-await-default:
> dmesg-fail -> PASS (fi-pnv-d510)
> Test gem_exec_reloc:
> Subgroup basic-cpu-read-active:
> pass -> FAIL (fi-gdg-551) fdo#102582 +2
> Test gem_mmap_gtt:
> Subgroup basic-small-bo-tiledx:
> fail -> PASS (fi-gdg-551) fdo#102575
> Test kms_cursor_legacy:
> Subgroup basic-busy-flip-before-cursor-legacy:
> fail -> PASS (fi-gdg-551) fdo#102618
> Test kms_pipe_crc_basic:
> Subgroup suspend-read-crc-pipe-a:
> pass -> DMESG-WARN (fi-kbl-r) fdo#104172 +1
> Subgroup suspend-read-crc-pipe-b:
> incomplete -> PASS (fi-snb-2520m) fdo#103713
Drat, old version of igt. Will need to send again later.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✗ Fi.CI.IGT: failure for drm/i915: Unwind i915_gem_init() failure (rev3)
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
` (7 preceding siblings ...)
2017-12-11 13:04 ` ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev3) Patchwork
@ 2017-12-11 14:27 ` Patchwork
2017-12-13 13:43 ` [PATCH v3] drm/i915: Unwind i915_gem_init() failure Chris Wilson
` (2 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-12-11 14:27 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Unwind i915_gem_init() failure (rev3)
URL : https://patchwork.freedesktop.org/series/35060/
State : failure
== Summary ==
Test kms_frontbuffer_tracking:
Subgroup fbc-1p-offscren-pri-indfb-draw-pwrite:
pass -> SKIP (shard-hsw) fdo#101623 +1
Test kms_cursor_crc:
Subgroup cursor-128x128-onscreen:
skip -> PASS (shard-snb)
Test kms_plane:
Subgroup plane-panning-top-left-pipe-b-planes:
skip -> PASS (shard-snb)
Test kms_chv_cursor_fail:
Subgroup pipe-a-256x256-top-edge:
skip -> PASS (shard-snb)
Subgroup pipe-b-256x256-bottom-edge:
pass -> INCOMPLETE (shard-hsw)
Test kms_atomic:
Subgroup atomic_invalid_params:
skip -> PASS (shard-snb)
Test gem_eio:
Subgroup in-flight-contexts:
pass -> DMESG-WARN (shard-snb) fdo#104058
Test kms_flip:
Subgroup dpms-vs-vblank-race-interruptible:
pass -> SKIP (shard-hsw) fdo#103060
fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
fdo#104058 https://bugs.freedesktop.org/show_bug.cgi?id=104058
fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
shard-hsw total:2618 pass:1494 dwarn:1 dfail:0 fail:9 skip:1113 time:9246s
shard-snb total:2692 pass:1308 dwarn:2 dfail:0 fail:12 skip:1370 time:8100s
Blacklisted hosts:
shard-apl total:2594 pass:1618 dwarn:1 dfail:0 fail:21 skip:953 time:12906s
shard-kbl total:2692 pass:1809 dwarn:1 dfail:0 fail:22 skip:859 time:10971s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7464/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH v3] drm/i915: Unwind i915_gem_init() failure
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
` (8 preceding siblings ...)
2017-12-11 14:27 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2017-12-13 13:43 ` Chris Wilson
2017-12-13 15:55 ` ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev4) Patchwork
2017-12-13 18:26 ` ✗ Fi.CI.IGT: warning " Patchwork
11 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2017-12-13 13:43 UTC (permalink / raw)
To: intel-gfx
Since Michal introduced new errors other than -EIO during
i915_gem_init(), we need to actually unwind on the error path as we have
to abort the module load (and we expect to do so cleanly!).
As we now teardown key state and then mark the driver as wedged (on
EIO), we have to be careful to not allow ourselves to resume and
unwedge, thus attempting to use the uninitialised driver.
v2: Try not to free driver state for the suppressed EIO
v3: Use load-fault-injection to test both error/recovery paths.
References: 8620eb1dbbf2 ("drm/i915/uc: Don't use -EIO to report missing firmware")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
---
drivers/gpu/drm/i915/i915_gem.c | 80 +++++++++++++++++++++++++++++++++--------
1 file changed, 66 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 8c3d801696b7..13fa26238e89 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4865,7 +4865,8 @@ void i915_gem_resume(struct drm_i915_private *i915)
i915_gem_restore_gtt_mappings(i915);
i915_gem_restore_fences(i915);
- /* As we didn't flush the kernel context before suspend, we cannot
+ /*
+ * As we didn't flush the kernel context before suspend, we cannot
* guarantee that the context image is complete. So let's just reset
* it and start again.
*/
@@ -4886,8 +4887,10 @@ void i915_gem_resume(struct drm_i915_private *i915)
return;
err_wedged:
- DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
- i915_gem_set_wedged(i915);
+ if (!i915_terminally_wedged(&i915->gpu_error)) {
+ DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
+ i915_gem_set_wedged(i915);
+ }
goto out_unlock;
}
@@ -5170,22 +5173,28 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
ret = i915_gem_init_ggtt(dev_priv);
- if (ret)
- goto out_unlock;
+ if (ret) {
+ GEM_BUG_ON(ret == -EIO);
+ goto err_unlock;
+ }
ret = i915_gem_contexts_init(dev_priv);
- if (ret)
- goto out_unlock;
+ if (ret) {
+ GEM_BUG_ON(ret == -EIO);
+ goto err_ggtt;
+ }
ret = intel_engines_init(dev_priv);
- if (ret)
- goto out_unlock;
+ if (ret) {
+ GEM_BUG_ON(ret == -EIO);
+ goto err_context;
+ }
intel_init_gt_powersave(dev_priv);
ret = i915_gem_init_hw(dev_priv);
if (ret)
- goto out_unlock;
+ goto err_pm;
/*
* Despite its name intel_init_clock_gating applies both display
@@ -5199,9 +5208,53 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
intel_init_clock_gating(dev_priv);
ret = __intel_engines_record_defaults(dev_priv);
-out_unlock:
+ if (ret)
+ goto err_init_hw;
+
+ if (i915_inject_load_failure()) {
+ ret = -ENODEV;
+ goto err_init_hw;
+ }
+
+ if (i915_inject_load_failure()) {
+ ret = -EIO;
+ goto err_init_hw;
+ }
+
+ intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+ mutex_unlock(&dev_priv->drm.struct_mutex);
+
+ return 0;
+
+ /*
+ * Unwinding is complicated by that we want to handle -EIO to mean
+ * disable GPU submission but keep KMS alive. We want to mark the
+ * HW as irrevisibly wedged, but keep enough state around that the
+ * driver doesn't explode during runtime.
+ */
+err_init_hw:
+ i915_gem_wait_for_idle(dev_priv, I915_WAIT_LOCKED);
+ i915_gem_contexts_lost(dev_priv);
+ intel_uc_fini_hw(dev_priv);
+err_pm:
+ if (ret != -EIO) {
+ intel_cleanup_gt_powersave(dev_priv);
+ i915_gem_cleanup_engines(dev_priv);
+ }
+err_context:
+ if (ret != -EIO)
+ i915_gem_contexts_fini(dev_priv);
+err_ggtt:
+err_unlock:
+ intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+ mutex_unlock(&dev_priv->drm.struct_mutex);
+
+ if (ret != -EIO)
+ i915_gem_cleanup_userptr(dev_priv);
+
if (ret == -EIO) {
- /* Allow engine initialisation to fail by marking the GPU as
+ /*
+ * Allow engine initialisation to fail by marking the GPU as
* wedged. But we only want to do this where the GPU is angry,
* for all other failure, such as an allocation failure, bail.
*/
@@ -5211,9 +5264,8 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
}
ret = 0;
}
- intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
- mutex_unlock(&dev_priv->drm.struct_mutex);
+ i915_gem_drain_freed_objects(dev_priv);
return ret;
}
--
2.15.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 17+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev4)
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
` (9 preceding siblings ...)
2017-12-13 13:43 ` [PATCH v3] drm/i915: Unwind i915_gem_init() failure Chris Wilson
@ 2017-12-13 15:55 ` Patchwork
2017-12-13 18:26 ` ✗ Fi.CI.IGT: warning " Patchwork
11 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-12-13 15:55 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Unwind i915_gem_init() failure (rev4)
URL : https://patchwork.freedesktop.org/series/35060/
State : success
== Summary ==
Series 35060v4 drm/i915: Unwind i915_gem_init() failure
https://patchwork.freedesktop.org/api/1.0/series/35060/revisions/4/mbox/
Test kms_frontbuffer_tracking:
Subgroup basic:
incomplete -> SKIP (fi-elk-e7500) fdo#103989 +1
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-a:
pass -> DMESG-WARN (fi-kbl-r) fdo#104172 +1
Subgroup suspend-read-crc-pipe-b:
pass -> INCOMPLETE (fi-snb-2520m) fdo#103713
fdo#103989 https://bugs.freedesktop.org/show_bug.cgi?id=103989
fdo#104172 https://bugs.freedesktop.org/show_bug.cgi?id=104172
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:437s
fi-bdw-gvtdvm total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:439s
fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:384s
fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:510s
fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:278s
fi-bxt-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:504s
fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:509s
fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:481s
fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:472s
fi-elk-e7500 total:229 pass:167 dwarn:15 dfail:0 fail:0 skip:46
fi-gdg-551 total:288 pass:179 dwarn:1 dfail:0 fail:0 skip:108 time:267s
fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:405s
fi-hsw-4770r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:416s
fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:391s
fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:476s
fi-ivb-3770 total:288 pass:255 dwarn:0 dfail:0 fail:0 skip:33 time:425s
fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:491s
fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:524s
fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:472s
fi-kbl-r total:288 pass:260 dwarn:1 dfail:0 fail:0 skip:27 time:526s
fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:593s
fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:450s
fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:543s
fi-skl-6700hq total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:563s
fi-skl-6770hq total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:495s
fi-skl-gvtdvm total:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:448s
fi-snb-2520m total:245 pass:211 dwarn:0 dfail:0 fail:0 skip:33
fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:412s
Blacklisted hosts:
fi-cfl-s2 total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:595s
fi-glk-dsi total:53 pass:45 dwarn:0 dfail:0 fail:0 skip:7
fi-glk-1 failed to collect. IGT log at Patchwork_7485/fi-glk-1/igt.log
1a717c76c96c2883866e4041926285b0f576fb54 drm-tip: 2017y-12m-13d-14h-48m-36s UTC integration manifest
6f0d85ab93db drm/i915: Unwind i915_gem_init() failure
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7485/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✗ Fi.CI.IGT: warning for drm/i915: Unwind i915_gem_init() failure (rev4)
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
` (10 preceding siblings ...)
2017-12-13 15:55 ` ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev4) Patchwork
@ 2017-12-13 18:26 ` Patchwork
2017-12-13 18:56 ` Chris Wilson
11 siblings, 1 reply; 17+ messages in thread
From: Patchwork @ 2017-12-13 18:26 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Unwind i915_gem_init() failure (rev4)
URL : https://patchwork.freedesktop.org/series/35060/
State : warning
== Summary ==
Test gem_tiled_swapping:
Subgroup non-threaded:
pass -> INCOMPLETE (shard-snb) fdo#104009
pass -> INCOMPLETE (shard-hsw) fdo#104218
Test kms_frontbuffer_tracking:
Subgroup fbc-1p-offscren-pri-shrfb-draw-render:
pass -> FAIL (shard-snb) fdo#101623
Test drv_suspend:
Subgroup sysfs-reader:
pass -> SKIP (shard-hsw)
Test kms_cursor_crc:
Subgroup cursor-256x256-suspend:
skip -> PASS (shard-snb) fdo#103375
fdo#104009 https://bugs.freedesktop.org/show_bug.cgi?id=104009
fdo#104218 https://bugs.freedesktop.org/show_bug.cgi?id=104218
fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
shard-hsw total:2694 pass:1525 dwarn:1 dfail:0 fail:10 skip:1157 time:9245s
shard-snb total:2694 pass:1301 dwarn:1 dfail:0 fail:13 skip:1378 time:7870s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7485/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ✗ Fi.CI.IGT: warning for drm/i915: Unwind i915_gem_init() failure (rev4)
2017-12-13 18:26 ` ✗ Fi.CI.IGT: warning " Patchwork
@ 2017-12-13 18:56 ` Chris Wilson
0 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2017-12-13 18:56 UTC (permalink / raw)
To: Patchwork; +Cc: intel-gfx
Quoting Patchwork (2017-12-13 18:26:21)
> == Series Details ==
>
> Series: drm/i915: Unwind i915_gem_init() failure (rev4)
> URL : https://patchwork.freedesktop.org/series/35060/
> State : warning
>
> == Summary ==
>
> Test gem_tiled_swapping:
> Subgroup non-threaded:
> pass -> INCOMPLETE (shard-snb) fdo#104009
> pass -> INCOMPLETE (shard-hsw) fdo#104218
> Test kms_frontbuffer_tracking:
> Subgroup fbc-1p-offscren-pri-shrfb-draw-render:
> pass -> FAIL (shard-snb) fdo#101623
> Test drv_suspend:
> Subgroup sysfs-reader:
> pass -> SKIP (shard-hsw)
> Test kms_cursor_crc:
> Subgroup cursor-256x256-suspend:
> skip -> PASS (shard-snb) fdo#103375
With no better suggestions, and this fixes lots of WARN spam from
invalid modparams, I've pushed this patch. Thanks for the review,
and improvements are very much welcome.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2017-12-13 18:56 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-07 23:56 [PATCH] drm/i915: Unwind i915_gem_init() failure Chris Wilson
2017-12-08 0:20 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-12-08 0:29 ` [PATCH] " Chris Wilson
2017-12-08 1:17 ` [PATCH v2] " Chris Wilson
2017-12-08 22:32 ` Michał Winiarski
2017-12-08 22:46 ` Chris Wilson
2017-12-08 1:53 ` ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev2) Patchwork
2017-12-08 2:17 ` ✗ Fi.CI.IGT: warning for drm/i915: Unwind i915_gem_init() failure Patchwork
2017-12-08 3:34 ` ✗ Fi.CI.IGT: failure for drm/i915: Unwind i915_gem_init() failure (rev2) Patchwork
2017-12-11 11:19 ` [PATCH v3] drm/i915: Unwind i915_gem_init() failure Chris Wilson
2017-12-11 13:04 ` ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev3) Patchwork
2017-12-11 13:17 ` Chris Wilson
2017-12-11 14:27 ` ✗ Fi.CI.IGT: failure " Patchwork
2017-12-13 13:43 ` [PATCH v3] drm/i915: Unwind i915_gem_init() failure Chris Wilson
2017-12-13 15:55 ` ✓ Fi.CI.BAT: success for drm/i915: Unwind i915_gem_init() failure (rev4) Patchwork
2017-12-13 18:26 ` ✗ Fi.CI.IGT: warning " Patchwork
2017-12-13 18:56 ` Chris Wilson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.