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