Intel16 Jul 2013 02:15 pm

This is the first post in the Power Savings post series I’m just starting to write.

I know there is nothing really new and exciting in this post once RC6 is a feature available for a coupe of years now and already enabled by default at our driver. However is the easiest topic to start with and I couldn’t let it out of the list, mainly because this is the most efficient power saving feature supported by our driver so far.

RC6 stands for Render C-State which is a low voltage state for the graphics processor. This state is entered when the graphics render engine, blitter engine and the video engine have no workload being currently worked and no outstanding graphics memory transactions.

Currently our kernel driver (i915) supports RC6 only for  2nd Generation Intel® Core™ Processors with Intel® HD Graphics (SandyBridge), 3rd Generation Intel® Core™ Processors with Intel® HD Graphics (IvyBridge) and 4th Generation Intel® Core™ Processors with Intel® HD Graphics (Haswell).

One frequent question is: how many render states does Intel GPU has, i.e. does it has RC1, RC2, RC3, RC4, RC5? The answer is: No, we only have RC6. Or GPU is on RC6 state or it is out. Low voltage or Normal voltage. However on SandyBridge and IvyBridge there are deep RC6 (RC6p) and deepest RC6  (RC6pp) states available, what means even lower voltage states. By default on SandyBridge only RC6 is enabled and on IvyBridge both RC6 and deep RC6 are enabled.

In Haswell RC6 is also enabled by default.

In order to change default configurations you must give kernel cmdline boot flag: i915.enable_rc6, where different stages can be selected via bitmask values. (0 = disable; 1 = enable rc6; 2 = enable deep rc6; 4 = enable deepest rc6). For example, 3 would enable rc6 and deep rc6, and 7 would enable everything.

Most of known issues caused by RC6 are GPU hangs. So if you are facing any gpu hung or any other issue we recommend you to disabled by using  i915.enable_rc6=0 and report a bug at following  our How to report bugs tutorial.


6 Responses to “drm/i915: GPU Power Savings – RC6”

  1. on 18 Mar 2014 at 6:30 am SDS

    If i915_enable_rc6 is -1 (chip default) how can I ascertain the actual chip defaults ?

  2. on 19 Mar 2014 at 7:48 am Rodrigo

    When i915_enable_rc6 = -1 (chip default):

    * Ironlake (gen5): Disabled by default
    * Ivybridge (gen7): RC6 and RC6p (deep) enabled by default.
    * Other platforms: RC6 enabled by default.

    It is also important to highlight there was no RC6 feature before Ironlake.

  3. on 12 May 2014 at 3:50 pm Peterdk

    What powersavings can be expected from this? Is there a real gain between RC6 and RC6p?

    I have a Hasswell pentium, and Ubuntu 14.04 allows RC6, but whatever i915_enable_rc6=x command I set as default grub boot option, dmesg still gives me:
    [drm] Enabling RC6 states: RC6 on, RC6p off, RC6pp off

    Can I assume that Hasswell only has RC6?

  4. on 12 May 2014 at 3:53 pm Rodrigo Vivi

    Yes, Haswell only has RC6.

    The actual powersavings depends on your environment, so there is no expectation I could set for you.

  5. on 13 May 2014 at 7:39 am Peter

    Ok, thanks!

    Is there a reason why hasswell doesn’t have these deeper states? Were they not usefull anymore or had too many issues?

  6. on 13 May 2014 at 7:41 am Rodrigo Vivi

    This is by Hardware designer, not on driver level. Out of my scope.

Trackback this Post | Feed on comments to this Post

Leave a Reply