<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - GPU lockups with kernel 3.11.0 / 3.12-rc1 when dpm=1 on r600g (Cayman)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=69723#c39">Comment # 39</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - GPU lockups with kernel 3.11.0 / 3.12-rc1 when dpm=1 on r600g (Cayman)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=69723">bug 69723</a>
              from <span class="vcard"><a class="email" href="mailto:agd5f@yahoo.com" title="Alex Deucher <agd5f@yahoo.com>"> <span class="fn">Alex Deucher</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=69723#c38">comment #38</a>)
<span class="quote">> A couple of observations. I've forced power state to performance and
> performance state to high. Here is the result:
> [root@Xander device]# more /sys/kernel/debug/dri/64/radeon_pm_info
> uvd    vclk: 0 dclk: 0
> power level 2    sclk: 83000 mclk: 130000 vddc: 1060 vddci: 1150

> Now, keeping this configuration, I launched a video relying on UVD. The
> result downclocks the core clock from 830 (probably limited to 800 as we
> know) to 725.
> [root@Xander device]# more /sys/kernel/debug/dri/64/radeon_pm_info
> uvd    vclk: 54000 dclk: 40000
> power level 2    sclk: 72500 mclk: 130000 vddc: 1060 vddci: 1150

> However, if I don't force this power and performance states combination
> (letting it as balanced and auto or performance and auto), I have the
> following:
> [root@Xander device]# more /sys/kernel/debug/dri/64/radeon_pm_info
> uvd    vclk: 54000 dclk: 40000
> power level 0    sclk: 50000 mclk: 130000 vddc: 1000 vddci: 1150
> [root@Xander device]# more /sys/kernel/debug/dri/64/radeon_pm_info
> uvd    vclk: 54000 dclk: 40000
> power level 2    sclk: 72500 mclk: 130000 vddc: 1060 vddci: 1150

> As you can see, it will adapt to the needed performance state.
> </span >

Not exactly.  Here are the power states defined for your system:

 == power state 0 ==
          ui class: none
          internal class: boot 
          caps: 
          uvd    vclk: 0 dclk: 0
          power level 0    sclk: 25000 mclk: 15000 vddc: 1000 vddci: 1000
          power level 1    sclk: 25000 mclk: 15000 vddc: 1000 vddci: 1000
          power level 2    sclk: 25000 mclk: 15000 vddc: 1000 vddci: 1000
          status: c r b 
 == power state 1 ==
          ui class: performance
          internal class: none
          caps: 
          uvd    vclk: 0 dclk: 0
          power level 0    sclk: 25000 mclk: 15000 vddc: 900 vddci: 950
          power level 1    sclk: 50000 mclk: 130000 vddc: 1000 vddci: 1150
          power level 2    sclk: 83000 mclk: 130000 vddc: 1060 vddci: 1150
          status: 
 == power state 2 ==
          ui class: none
          internal class: uvd 
          caps: video 
          uvd    vclk: 54000 dclk: 40000
          power level 0    sclk: 50000 mclk: 130000 vddc: 1000 vddci: 1150
          power level 1    sclk: 50000 mclk: 130000 vddc: 1000 vddci: 1150
          power level 2    sclk: 72500 mclk: 130000 vddc: 1060 vddci: 1150
          status: 
 == power state 3 ==
          ui class: none
          internal class: uvd_mvc 
          caps: video 
          uvd    vclk: 70000 dclk: 56000
          power level 0    sclk: 50000 mclk: 130000 vddc: 1000 vddci: 1150
          power level 1    sclk: 50000 mclk: 130000 vddc: 1000 vddci: 1150
          power level 2    sclk: 72500 mclk: 130000 vddc: 1060 vddci: 1150
          status: 

When you select performance, battery, or balanced state on your system, power
state 1 is used.  When you activate UVD, the driver selects power state 2. 
When UVD is not in use, the previously active power state (1 in this case) is
selected again.  The driver only selects the power state.  The power levels
(0-2) within the power state are either selected automatically by the hw based
on GPU load (auto) or forced to power level 0 or 2 (low or high) is you force
the performance level.  When you force the performance level to high, it will
apply to all power states that you select (both power state 1 and 2) which is
why you see the UVD state using 500 vs. 725 Mhz.

<span class="quote">> - So, first question: is it expected to see a lowered sclk when UVD is
> active?</span >

Yes since the driver selects a different power state (one tailored to the
requirements of the UVD block for smooth video playback).

<span class="quote">> - Second one: when the performance is changed automatically (auto), could we
> be triggering a performance state change too quickly?</span >

The driver doesn't trigger performance level changes, the hw does.  The driver
just selects the overall power state.  

<span class="quote">> - Third one: it was previously said mclk is tied to vddci AND vddc. Wouldn't
> there be a chance we could encounter a problem here if vddc=1000 and not
> 1060 when running at full speed?</span >

Sure.  That's why we have the ni_apply_state_adjust_rules() to make sure the
power state is valid based on the current requirements.

<span class="quote">> - Last one: is there a way to monitor the GPU temperature and/or the GPU fan
> speed? (even at full speed when highly solicited, the fan is not running as
> fast as when dpm=0. I'm wondering if I'm not overheating from time to time).</span >

You can see the temperature in sysfs.  There should be a entry under
/sys/class/hwmon/ for radeon.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>