Quoting Tvrtko Ursulin (2018-05-18 09:06:03) > > On 17/05/2018 18:07, Chris Wilson wrote: > > 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. > > > > Ministat histogram. The headers being the label for the charts; it's a > > bit flat so hard to tell it's a histogram. > > > >>> 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? > > > > Yup, more runs required so you have prettier graphs and units. > > Biggest problem for me is that in these tests it is only showing as > significantly worse than the current tasklet. So it is kind of difficult > the sell the series. :) As a reference point, on bdw from before we introduced tasklets: gem_syslatency: cycles=20849458, latency mean=678.892us max=8308500us gem_syslatency: cycles=22964600, latency mean=1583.312us max=5991894us gem_syslatency: cycles=21404190, latency mean=1766.220us max=12423925us gem_syslatency: cycles=22779405, latency mean=1698.282us max=9110117us gem_syslatency: cycles=22021655, latency mean=1921.855us max=7193398us Message from syslogd@broadwell at May 18 18:27:47 ... kernel:[ 8991.394488] NMI watchdog: BUG: soft lockup - CPU#2 stuck for 22s! [gem_syslatency:1800] gem_syslatency: cycles=21218381, latency mean=1711.088us max=13932087us gem_syslatency: cycles=22189636, latency mean=1724.968us max=15483237us gem_syslatency: cycles=21941275, latency mean=1697.738us max=6065099us gem_syslatency: cycles=21896529, latency mean=1748.536us max=8007063us gem_syslatency: cycles=22053588, latency mean=1677.465us max=6604678us gem_syslatency: cycles=21657859, latency mean=1570.085us max=10346811us gem_syslatency: cycles=21627270, latency mean=1227.782us max=10489759us gem_syslatency: cycles=22441025, latency mean=1635.776us max=5932223us gem_syslatency: cycles=21890354, latency mean=1790.042us max=7956373us gem_syslatency: cycles=20976620, latency mean=989.215us max=11631632us gem_syslatency: cycles=22087242, latency mean=1723.138us max=12337920us gem_syslatency: cycles=22800746, latency mean=1749.050us max=7080445us * at this point, the sata driver ate itself and took out the fs. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx