<div class="gmail_quote">On 18 May 2012 22:25, Jesse Barnes <span dir="ltr"><<a href="mailto:jbarnes@virtuousgeek.org" target="_blank">jbarnes@virtuousgeek.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div>On Thu, 17 May 2012 21:11:45 +0100<br>
Joe Bloggsian <<a href="mailto:joebloggsian@gmail.com" target="_blank">joebloggsian@gmail.com</a>> wrote:<br>
<br>
> Hi,<br>
><br>
> We are looking at accelerating video operations using<br>
> vaapi/intel-driver. When using Ivy bridge we believe that the GPU is<br>
> (almost always) not turboing even when 100% busy doing vaapi video<br>
> things (e.g. image scaling on EUs or bitstream decode). To determined<br>
> this we use cat /sys/kernel/debug/dri/0/i915_cur_delayinfo and GPU top<br>
> (todays IVB fixed vesion). We have tried a variety of IVB parts from<br>
> 3610QE up to 3770 - all do the same. We've mainly been using kernel<br>
> 3.2.0-24-generic and libdrm 2.4.32. The same machines turbo correctly<br>
> when doing equivent things in windows using intel media SDK.<br>
><br>
> I get the impression from mailing lists that turbo is known to have<br>
> driver/sw issues. Can anyone suggest if there is a later kernel/drm<br>
> version that might improve things? If so where do we find it? This is<br>
> for evaluation so we're happy to try unstable latest software.<br>
<br>
</div></div>You could try the drm-intel-next branch from Daniel's git tree at<br>
git://<a href="http://people.freedesktop.org/~danvet/drm-intel" target="_blank">people.freedesktop.org/~danvet/drm-intel</a>.<br>
<br>
I've definitely seen turbo kick in for gfx workloads, but parts of the<br>
media engine use a different turbo mechanism, so if the current kernel<br>
bits don't work, you could try this:<br>
<br>
--- a/drivers/gpu/drm/i915/intel_pm.c<br>
+++ b/drivers/gpu/drm/i915/intel_pm.c<br>
@@ -2439,7 +2439,7 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)<br>
        I915_WRITE(GEN6_RP_IDLE_HYSTERSIS, 10);<br>
        I915_WRITE(GEN6_RP_CONTROL,<br>
                   GEN6_RP_MEDIA_TURBO |<br>
-                  GEN6_RP_MEDIA_HW_MODE |<br>
+                  GEN6_RP_MEDIA_HW_NORMAL_MODE |<br>
                   GEN6_RP_MEDIA_IS_GFX |<br>
                   GEN6_RP_ENABLE |<br>
                   GEN6_RP_UP_BUSY_AVG |<br>
<br>
If that doesn't work, let me know and I'll see what we're missing.<br>
<br>
Thanks,<br>
<span><font color="#888888">--<br>
Jesse Barnes, Intel Open Source Technology Center<br>
</font></span></blockquote></div><br><div><span>Hi Jesse,</span></div><div><div><br></div><div>Thanks for the help, I've had time to build and test a few kernels on various systems following your advice.</div>
<div><br></div><div>In summary I need both a new <span style="white-space:pre-wrap">drm-intel-next </span>kernel from <span style="white-space:pre-wrap">Daniel's tree *and* the patch you suggest to get expected GPU turbo behaviour</span><span style="white-space:pre-wrap">, compared to a stable 3.2 kernel.</span></div>

<div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">Test results from Core i7 3770 / HD4000:  </span><span style="white-space:pre-wrap">With just the latest </span><span style="white-space:pre-wrap">drm-intel-next </span><span style="white-space:pre-wrap">kernel (commit </span><span style="white-space:pre-wrap">98b6bd</span><span style="white-space:pre-wrap">), the symptoms are as before, max GPU turbo of 600MHz in the test app.  With just the </span><span style="white-space:pre-wrap">(equivalent of the) </span><span style="white-space:pre-wrap">patch applied to a 3.2.18 kernel, the max turbo is better (>600) but still often less than expected.  With both patch and kernel, the GPU immediately spins up to 1.15GHz and stays there, as expected - and the measured test app performance is nearly twice what I get with the up to date Ubuntu 12.04 x64 kernel!</span></div>

<div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">I've also seen the full turbo kick in for other media workloads with the default kernel, but one way of reliably reproducing this problem for me is to run the avcenc test app that is part of libva.</span></div>

<div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">The same problem exists on Sandy Bridge.  Although the turbo and performance gaps between the latest released Ubuntu 12.04 kernel and the patched 3.4 kernel are less than Ivy Bridge, they are still significant on my core i3 2310M / HD3000 laptop.</span></div>

<div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">I'm happy that things are good enough for our purposes now - but p</span><span style="white-space:pre-wrap">lease do let me know if there's anything else I can do to help with this.</span></div>

<div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">Thanks,</span></div><div><span style="white-space:pre-wrap">Bloggsian.</span></div></div><div><span style="white-space:pre-wrap">
</span></div><div><span style="white-space:pre-wrap">PS.  </span><span style="white-space:pre-wrap">It's great to see Intel putting this work into the open source drivers - even without the turbo patches, the latest 3.4 drm-intel-next kernel still gives something like a 5% performance boost over the current Ubuntu kernel in my quick tests on Ivy.</span></div>

<div><span style="white-space:pre-wrap"><br></span></div>