Re: [PATCH 18/19] drm/i915/execlists: Direct submission (avoid tasklet/ksoftirqd)

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

 



Quoting Tvrtko Ursulin (2018-05-17 14:13:00)
> 
> On 17/05/2018 08:40, Chris Wilson wrote:
> > Back in commit 27af5eea54d1 ("drm/i915: Move execlists irq handler to a
> > bottom half"), we came to the conclusion that running our CSB processing
> > and ELSP submission from inside the irq handler was a bad idea. A really
> > bad idea as we could impose nearly 1s latency on other users of the
> > system, on average! Deferring our work to a tasklet allowed us to do the
> > processing with irqs enabled, reducing the impact to an average of about
> > 50us.
> > 
> > We have since eradicated the use of forcewaked mmio from inside the CSB
> > processing and ELSP submission, bringing the impact down to around 5us
> > (on Kabylake); an order of magnitude better than our measurements 2
> > years ago on Broadwell and only about 2x worse on average than the
> > gem_syslatency on an unladen system.
> > 
> > Comparing the impact on the maximum latency observed over a 120s interval,
> > repeated several times (using gem_syslatency, similar to RT's cyclictest)
> > while the system is fully laden with i915 nops, we see that direct
> > submission definitely worsens the response but not to the same outlandish
> > degree as before.
> > 
> > x Unladen baseline
> > + Using tasklet
> > * Direct submission
> > 
> > +------------------------------------------------------------------------+
> > |xx x          ++    +++ +                           *  * *   ** *** *  *|
> > ||A|              |__AM__|                               |_____A_M___|   |
> > +------------------------------------------------------------------------+
> 
> What are these headers? This one and below, I cannot decipher them at all.
> 
> >      N           Min           Max        Median           Avg        Stddev
> > x  10             5            18            10           9.3     3.6530049
> > +  10            72           120           108         102.9     15.758243
> > *  10           255           348           316         305.7      28.74814
> 
> In micro-seconds? so tasklet is 108us median? Direct submission 316us 
> median?

Perspective, ivb ringbuf:

x syslatency-ringbuf-mean.txt
+ syslatency-ringbuf-max.txt
+------------------------------------------------------------------------+
|   xx                                                           +       |
|   xx                                                           +       |
|   xx                                                           +       |
|   xx                                                          ++       |
|  xxxx                                       +  +      +  ++ + ++       |
|x xxxx      +                             +  +  ++  +  ++ ++++ ++++    +|
|  |AM                                         |__________A__M_______|   |
+------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  30         5.395        17.893        13.626     13.135367     2.2143809
+  30            33           169           143     135.86667     25.609445

Using execlists+tasklet is on par with irqoff (i.e. max) latency of
ringbuf. (There should be very little irq disabling for ringbuf.) Normal
average latency of execlists+direct_submission is still better than ivb,
but that is almost entirely generational differences.
-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