On 5/31/2018 1:47 PM, Chris Wilson wrote:
If we fail to tell the GuC to perform preemption, we get stuck attempting to continually retry inject_preempt_context() until we eventually timeout and reset the GPU (approximately emitting the same warning 1000 times). Bail after the first failure, emit the WARN and
I only see 340 warnings in the 4 seconds before it timed out.
<7>[ ] [drm:intel_guc_send_mmio [i915]] INTEL_GUC_SEND: Action 0x2 failed; ret=-110 status=0x00000002 response=0x40000000
The status is the same as the action, so something really bad happened inside there.
stop trying to do any further preemption on this engine. References: https://intel-gfx-ci.01.org/tree/drm-tip/Trybot_2235/shard-apl4/igt@[email protected] Signed-off-by: Chris Wilson <[email protected]> Cc: Michal Wajdeczko <[email protected]> Cc: Michel Thierry <[email protected]> Cc: Michałt Winiarski <[email protected]>
Reviewed-by: Michel Thierry <[email protected]>
--- drivers/gpu/drm/i915/intel_guc_submission.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c index 133367a17863..24bdac205c45 100644 --- a/drivers/gpu/drm/i915/intel_guc_submission.c +++ b/drivers/gpu/drm/i915/intel_guc_submission.c @@ -588,6 +588,7 @@ static void inject_preempt_context(struct work_struct *work) data[6] = intel_guc_ggtt_offset(guc, guc->shared_data);if (WARN_ON(intel_guc_send(guc, data, ARRAY_SIZE(data)))) {+ engine->flags &= ~I915_ENGINE_HAS_PREEMPTION; /* XXX racy! */ execlists_clear_active(&engine->execlists, EXECLISTS_ACTIVE_PREEMPT); tasklet_schedule(&engine->execlists.tasklet);
_______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
