Re: [PATCH 2/3] drm/i915: Flush the tasklet when checking for idle

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Tvrtko Ursulin (2018-09-14 11:21:07)
> 
> On 14/09/2018 09:00, Chris Wilson wrote:
> > In order to reduce latency when checking for idle we kick the tasklet
> > directly. Sometimes this is not enough as it is queued on another cpu
> > and so to improve the accuracy of this idle-check (and so to reduce
> > latency overall by avoiding another pass, or worse declaring a timeout!)
> > wait for the tasklet to complete.
> > 
> > References: https://bugs.freedesktop.org/show_bug.cgi?id=107916
> > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> > Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>
> > Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>
> > Cc: Michel Thierry <michel.thierry@xxxxxxxxx>
> > ---
> >   drivers/gpu/drm/i915/intel_engine_cs.c | 3 +++
> >   1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c
> > index 10cd051ba29e..217ed3ee1cab 100644
> > --- a/drivers/gpu/drm/i915/intel_engine_cs.c
> > +++ b/drivers/gpu/drm/i915/intel_engine_cs.c
> > @@ -990,6 +990,9 @@ bool intel_engine_is_idle(struct intel_engine_cs *engine)
> >               }
> >               local_bh_enable();
> >   
> > +             /* Otherwise flush the tasklet if it was on another cpu */
> > +             tasklet_unlock_wait(t);
> 
> That's one bizarre api! I was expecting it to mess up the state here but 
> nope, apparently it is actually what one would expect to be named 
> tasklet_sync.
> 
> > +
> >               if (READ_ONCE(engine->execlists.active))
> >                       return false;
> >       }
> > 
> 
> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>

Ta, first two applied. I'm in the market for a victim for number 3.
Mika!
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux