Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > Now that we can pass arbitrary commands into the base __wait_for() > macro, we can reimplement the open-coded wait-for inside > i915_gem_idle_work_handler() using the macro. This means that instead of > using ktime, we now use jiffies, and benefit from the exponential sleep > backoff that allows a fast response if the HW settles quickly. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxx> > Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> > > --- > Note this depends on __wait_for() from the hdcp topic branch. > --- > drivers/gpu/drm/i915/i915_gem.c | 15 ++++----------- > 1 file changed, 4 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 7f0684ccc724..cb4df1be0909 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -3347,7 +3347,6 @@ i915_gem_idle_work_handler(struct work_struct *work) > struct drm_i915_private *dev_priv = > container_of(work, typeof(*dev_priv), gt.idle_work.work); > bool rearm_hangcheck; > - ktime_t end; > > if (!READ_ONCE(dev_priv->gt.awake)) > return; > @@ -3356,16 +3355,10 @@ i915_gem_idle_work_handler(struct work_struct *work) > * Wait for last execlists context complete, but bail out in case a > * new request is submitted. > */ > - end = ktime_add_ms(ktime_get(), I915_IDLE_ENGINES_TIMEOUT); > - do { > - if (new_requests_since_last_retire(dev_priv)) > - return; > - > - if (intel_engines_are_idle(dev_priv)) > - break; > - > - usleep_range(100, 500); > - } while (ktime_before(ktime_get(), end)); > + __wait_for(if (new_requests_since_last_retire(dev_priv)) return, > + intel_engines_are_idle(dev_priv), > + I915_IDLE_ENGINES_TIMEOUT * 1000, > + 10, 1000); Not perhaps the prettiest construct but it does what the commit message promises. Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx