DPM on Radeon HD6570

Boszormenyi Zoltan zboszor at pr.hu
Wed Aug 21 10:56:57 PDT 2013


2013-08-21 18:30 keltezéssel, Grigori Goronzy írta:
> On 21.08.2013 16:31, Boszormenyi Zoltan wrote:
>> Hi,
>>
>> I read this Phoronix article:
>> http://www.phoronix.com/scan.php?page=article&item=amd_hd6000_dpm&num=1
>>
>> Congrats to the progress achieved so far.
>>
>> However, I can see an interesting deviation for HD6570 from the
>> observed trend of other chips.
>>
>> r600g can reach 80+ percent of the performance of Catalyst
>> for most HD6xxx chips except for 6570, where the performance
>> is around 10-20 percent.
>>
>> Do you have a theory about this difference?
>> Maybe DPM doesn't work as intended on HD6570?
>>
>
> There are some ways to check if DPM functions correctly.
>
> The kernel log (dmesg) contains a dump of the PowerPlay tables, search for "power 
> state". It's possible that tables aren't read correctly or flaky to start with.

Here it is:

[    2.252567] [drm] Internal thermal controller with fan control
[    2.252619] == power state 0 ==
[    2.252621]  ui class: none
[    2.252622]  internal class: boot
[    2.252624]  caps:
[    2.252625]  uvd    vclk: 0 dclk: 0
[    2.252627]          power level 0    sclk: 10000 mclk: 15000 vddc: 900 vddci: 0
[    2.252628]          power level 1    sclk: 10000 mclk: 15000 vddc: 900 vddci: 0
[    2.252629]          power level 2    sclk: 10000 mclk: 15000 vddc: 900 vddci: 0
[    2.252630]  status: c r b
[    2.252632] == power state 1 ==
[    2.252632]  ui class: performance
[    2.252633]  internal class: none
[    2.252635]  caps:
[    2.252636]  uvd    vclk: 0 dclk: 0
[    2.252637]          power level 0    sclk: 10000 mclk: 15000 vddc: 900 vddci: 0
[    2.252640]          power level 1    sclk: 40000 mclk: 80000 vddc: 1000 vddci: 0
[    2.252641]          power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
[    2.252642]  status:
[    2.252643] == power state 2 ==
[    2.252644]  ui class: none
[    2.252645]  internal class: uvd
[    2.252646]  caps: video
[    2.252647]  uvd    vclk: 70000 dclk: 56000
[    2.252651]          power level 0    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
[    2.252652]          power level 1    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
[    2.252653]          power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
[    2.252654]  status:
[    2.257099] switching from power state:
[    2.257105]  ui class: none
[    2.257107]  internal class: boot
[    2.257109]  caps:
[    2.257111]  uvd    vclk: 0 dclk: 0
[    2.257113]          power level 0    sclk: 10000 mclk: 15000 vddc: 900 vddci: 0
[    2.257114]          power level 1    sclk: 10000 mclk: 15000 vddc: 900 vddci: 0
[    2.257116]          power level 2    sclk: 10000 mclk: 15000 vddc: 900 vddci: 0
[    2.257117]  status: c b
[    2.257129] switching to power state:
[    2.257130]  ui class: performance
[    2.257132]  internal class: none
[    2.257133]  caps:
[    2.257135]  uvd    vclk: 0 dclk: 0
[    2.257137]          power level 0    sclk: 10000 mclk: 15000 vddc: 900 vddci: 0
[    2.257139]          power level 1    sclk: 40000 mclk: 80000 vddc: 1000 vddci: 0
[    2.257140]          power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
[    2.257141]  status: r
[    2.258555] [drm] radeon: dpm initialized


>
> You can also monitor the precise runtime power level (clocks and voltages) of the GPU 
> with /sys/kernel/debug/dri/0/radeon_pm_info. Maybe dynamic switching does not work for 
> some reason, and the GPU always uses the lowest level even under load. Just run some 
> demanding OpenGL app and check that file to see if the GPU switches the power level.

Just running this loop:

[root at localhost ~]# while `/bin/true` ; do cat /sys/kernel/debug/dri/0/radeon_pm_info ; 
sleep 1 ; done

while the terminal is sufficiently large on the screen results in changing power levels:

uvd    vclk: 0 dclk: 0
power level 0    sclk: 10000 mclk: 15000 vddc: 900 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
uvd    vclk: 0 dclk: 0
power level 0    sclk: 10000 mclk: 15000 vddc: 900 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
uvd    vclk: 0 dclk: 0
power level 0    sclk: 10000 mclk: 15000 vddc: 900 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
uvd    vclk: 0 dclk: 0
power level 2    sclk: 65000 mclk: 80000 vddc: 1050 vddci: 0
^C

>
> You should probably file a bug on bugs.freedesktop.org (product DRI, component 
> DRM/radeon) and attach dmesg output and anything else that might be useful.
>
> Best regards
> Grigori
>

So, it seems DPM works well but the card is weak.
Sorry for the noise.

Best regards,
Zoltán Böszörményi



More information about the dri-devel mailing list