Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > Quoting Mika Kuoppala (2018-05-07 09:34:24) >> Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: >> >> > We rely on ksoftirqd to run in a timely fashion in order to drain the >> > execlists queue. Quite frequently, it does not. In some cases we may see >> > latencies of over 200ms triggering our idle timeouts and forcing us to >> > declare the driver wedged! >> > >> > Thus we can speed up idle detection by bypassing ksoftirqd in these >> > cases and flush our tasklet to confirm if we are indeed still waiting >> > for the ELSP to drain. >> > >> > v2: Put the execlists.first check back; it is required for handling >> > reset! >> > >> > References: https://bugs.freedesktop.org/show_bug.cgi?id=106373 >> > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> >> > Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> >> > Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> >> > --- >> > drivers/gpu/drm/i915/intel_engine_cs.c | 15 ++++++++++++--- >> > 1 file changed, 12 insertions(+), 3 deletions(-) >> > >> > diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c >> > index 70325e0824e3..a3111511ea1d 100644 >> > --- a/drivers/gpu/drm/i915/intel_engine_cs.c >> > +++ b/drivers/gpu/drm/i915/intel_engine_cs.c >> > @@ -945,10 +945,19 @@ bool intel_engine_is_idle(struct intel_engine_cs *engine) >> > return true; >> > >> > /* Waiting to drain ELSP? */ >> > - if (READ_ONCE(engine->execlists.active)) >> > - return false; >> > + if (READ_ONCE(engine->execlists.active)) { >> > + struct intel_engine_execlists *execlists = &engine->execlists; >> > + >> > + if (tasklet_trylock(&execlists->tasklet)) { >> >> Now that we have the lock, sample active again to catch >> the late tasklet run and skip running if so? > > It becomes a nop in the submission tasklet, it's not dangerous. So it > comes down to what looks less of a wart! The nice side effect of this kick is that now the hangcheck also won't fall a victim. Should we have a test which adds random and long tasklet delays? Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx