pcbsd9-stable-20120505 snapshot - howto enable intel rc6

Kevin Oberman kob6558 at gmail.com
Fri May 18 00:56:42 UTC 2012


On Thu, May 17, 2012 at 3:03 PM, Konstantin Belousov
<kostikbel at gmail.com> wrote:
> On Thu, May 17, 2012 at 09:56:54AM -0400, user10508 at gmail.com wrote:
>> I'm using this pcbsd snapshot on an asus k53e laptop
>>
>> /etc/make.conf contains:
>> WITH_NEW_XORG=yes
>>
>> xf86-video-intel-2.17.0 compiled from ports
>>
>> Laptop runs very hot
>> Battery lasts less than half as long as pcbcd9 release intel driver
>>
>> sysctl inquiry reveals
>>
>> hw.dri.0.info.i915_drpc_info: RC information accurate: yes
>> Video Turbo Mode: yes
>> HW control enabled: yes
>> SW control enabled: no
>> RC1e Enabled: no
>> RC6 Enabled: no
>> Deep RC6 Enabled: no
>> Deepest RC6 Enabled: no
>> Current RC state: on
>> Core Power Down: no
>>
>>
>> If it is possible to enable RC6:
>>
>> what modes can be enabled
>>
>> how can/should an RC6 mode be enabled
> On my 2600K enabling any RC6 causes reliable failure to start BLT ring.
> When I tried to enable RC for wider audience, I get similar reports in
> quantity. So RC6 is disabled by default.
>
> I have no idea what version of Intel GPU patch was applied to your
> snapshot, so I describe a recipe for 14.x and 15.x series of patches.
> To try to play with RC6, you need to set kernel environment variables
> before loading the i915(kms) module. Set drm.i915.intel_iommu_enabled=0,
> then you may enable actual RC6 states with drm.i915.enable_rc6 tunable.
> The bits are the same as for Linux, citation from i915_drv.h:
>
> /**
>  * RC6 is a special power stage which allows the GPU to enter an very
>  * low-voltage mode when idle, using down to 0V while at this stage.  This
>  * stage is entered automatically when the GPU is idle when RC6 support is
>  * enabled, and as soon as new workload arises GPU wakes up automatically as well.
>  *
>  * There are different RC6 modes available in Intel GPU, which differentiate
>  * among each other with the latency required to enter and leave RC6 and
>  * voltage consumed by the GPU in different states.
>  *
>  * The combination of the following flags define which states GPU is allowed
>  * to enter, while RC6 is the normal RC6 state, RC6p is the deep RC6, and
>  * RC6pp is deepest RC6. Their support by hardware varies according to the
>  * GPU, BIOS, chipset and platform. RC6 is usually the safest one and the one
>  * which brings the most power savings; deeper states save more power, but
>  * require higher latency to switch to and wake up.
>  */
> #define INTEL_RC6_ENABLE                        (1<<0)
> #define INTEL_RC6p_ENABLE                       (1<<1)
> #define INTEL_RC6pp_ENABLE                      (1<<2)
>

This is a serious shot in the dark, but is either TCC (p4tcc) or
thottling enabled? It has been noted (see mav's power management page
on the wiki) that using these techniques is of no significant value to
power management and can cause system timing problems when so used in
combination with C-states (which DO save power). It may interacting
with the RC6 power management in some manner, as well.

I have no evidence of this, but it might be worth trying. Add these
lines to /boot/loader.conf:
# Disable CPU throttling
hint.p4tcc.0.disabled=1
hint.acpi_throttle.0.disabled=1
-- 
R. Kevin Oberman, Network Engineer
E-mail: kob6558 at gmail.com


More information about the freebsd-x11 mailing list