Message ID | 20180409194253.22822-1-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Quoting Patchwork (2018-04-10 00:57:45) > == Series Details == > > Series: series starting with [1/2] drm/i915/guc: Check that the breadcrumb irq is enabled > URL : https://patchwork.freedesktop.org/series/41396/ > State : failure > > == Summary == > > ---- Possible new issues: > > Test gem_eio: > Subgroup execbuf: > pass -> INCOMPLETE (shard-apl) > Subgroup throttle: > pass -> INCOMPLETE (shard-apl) > Test kms_frontbuffer_tracking: > Subgroup fbc-rgb565-draw-mmap-gtt: > pass -> FAIL (shard-apl) > Test perf: > Subgroup gen8-unprivileged-single-ctx-counters: > pass -> FAIL (shard-apl) As expected, after the wedging the pinning of the breadcrumb irq is unbalanced, leading to guc_submission_tasklet being run while interrupts are disabled. A terminal condition. -Chris
diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c index 97121230656c..a7957b669b68 100644 --- a/drivers/gpu/drm/i915/intel_guc_submission.c +++ b/drivers/gpu/drm/i915/intel_guc_submission.c @@ -758,6 +758,8 @@ static void guc_submission_tasklet(unsigned long data) struct execlist_port *port = execlists->port; struct i915_request *rq; + GEM_BUG_ON(!READ_ONCE(engine->breadcrumbs.irq_enabled)); + rq = port_request(port); while (rq && i915_request_completed(rq)) { trace_i915_request_out(rq);
Our execlists emulation for GuC requires use of the breadcrumb following every request as a simulcrum for the context-switch interrupt, which we then use to drive the submission tasklet. Therefore, when we unpark the engine for use with the GuC, we pin the breadcrumb interrupt to keep it enabled for the duration. This has to be remain so across all resets, wedging and resume, so check we do have the irq enabled when we start submitting requests to the GuC and on all submissions thereafter. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: MichaĆ Winiarski <michal.winiarski@intel.com> --- drivers/gpu/drm/i915/intel_guc_submission.c | 2 ++ 1 file changed, 2 insertions(+)