Bug 62861 - [BISECTED]Maximum CPU voltage level never reached on AMD A8-5500 if radeon.dpm=1 is used
Summary: [BISECTED]Maximum CPU voltage level never reached on AMD A8-5500 if radeon.dp...
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Video(DRI - non Intel) (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: cpufreq
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-12 03:21 UTC by Kertesz Laszlo
Modified: 2016-03-23 18:58 UTC (History)
2 users (show)

See Also:
Kernel Version: 3.12.0
Subsystem:
Regression: No
Bisected commit-id:


Attachments
dmesg (129.98 KB, text/plain)
2013-10-12 03:46 UTC, Kertesz Laszlo
Details
lspci output (2.28 KB, text/plain)
2013-10-13 04:07 UTC, Kertesz Laszlo
Details

Description Kertesz Laszlo 2013-10-12 03:21:26 UTC
I noticed this issue in the kernel 3.12 rc4 (built from git):

The CPU should have its voltages in the 0.9-1.34v range (it was until rc3 at least).
In the rc4 builds it only goes up to 1.22v, but the lower range is modified too - it no longer stays at 0.9, it bounces between as low as 0.64 and 0.9, usually stays in the 0.85-0.88 range.

The result is: lower temperatures (~5C) and lower processor speeds+performance.

This CPU has its nominal frequency at 3.2 GHz and a turbo frequency of 3.7 GHz (theoretic, under Linux at least i seen max 3.6, mostly its ~3.5). Anyway, in typical usage if 1 or 2 cores are used, it can be at ~3.5GHz quite long before throttling down. Using all 4 cores (compiling with 4 threads) usually goes at ~3.3 mostly with an initial 3.5 for a half minute or so with CPU voltage at 1.34v.
Now with this capping at 1.22v this what i get (no turbo core or anything):

'sensors' output under full load, 4 threads compile (in0 is the CPU voltage):

it8728-isa-0228
Adapter: ISA adapter
in0:          +1.22 V  (min =  +0.00 V, max =  +3.06 V)
in1:          +1.64 V  (min =  +0.00 V, max =  +3.06 V)
in2:          +2.00 V  (min =  +0.00 V, max =  +3.06 V)
in3:          +2.05 V  (min =  +0.00 V, max =  +3.06 V)
in4:          +1.99 V  (min =  +0.00 V, max =  +3.06 V)
in5:          +2.22 V  (min =  +0.00 V, max =  +3.06 V)
in6:          +2.22 V  (min =  +0.00 V, max =  +3.06 V)
3VSB:         +3.36 V  (min =  +0.00 V, max =  +6.12 V)
Vbat:         +3.31 V
fan1:        2576 RPM  (min =    0 RPM)
fan2:         906 RPM  (min =    0 RPM)
fan3:           0 RPM  (min =    0 RPM)
fan4:           0 RPM  (min =    0 RPM)
fan5:           0 RPM  (min =    0 RPM)
temp1:        +29.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermistor
temp2:         -8.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermistor
temp3:        +49.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = Intel PECI
intrusion0:  OK

'cpufreq-aperf' output under full load, 4 threads compile:

# cpufreq-aperf -o
CPU	Average freq(KHz)	Time in C0	Time in Cx	C0 percentage
000	3168000			00 sec 933 ms	00 sec 066 ms	93
001	3168000			00 sec 970 ms	00 sec 029 ms	97
002	3168000			00 sec 894 ms	00 sec 105 ms	89
003	3168000			00 sec 962 ms	00 sec 037 ms	96

This 3168000 KHz happens even i have only 1 core loaded, which before had ~3.488 GHz according to cpufreq-aperf.

/sys/devices/system/cpu/cpu1/cpufreq/cpb has the value of 1 so i guess turbo core is still enabled but because of this voltage capping it never happens.

Temperature isnt an issue, since this way the CPU goes up to 50C, before was max ~55C with better performance.

Note that i use the radeon driver.
Comment 1 Kertesz Laszlo 2013-10-12 03:46:56 UTC
Created attachment 110801 [details]
dmesg
Comment 2 Kertesz Laszlo 2013-10-13 04:06:27 UTC
The mobo is a Gigabyte F2A85X-D3H.
Comment 3 Kertesz Laszlo 2013-10-13 04:07:08 UTC
Created attachment 110811 [details]
lspci output
Comment 4 Kertesz Laszlo 2013-10-19 13:13:52 UTC
This issue is related to the radeon driver's dpm code.
If i dont append radeon.dpm=1 to the kernel boot options, i have 0.9-1.34v and correct CPU speeds (including torbo boost).
Comment 5 Kertesz Laszlo 2013-10-21 03:39:06 UTC
I reverted commit 4076a65544e2de310cbf4eaadb13ee15bbfaaf4f. Reverting this commit changed back the CPU voltage handling as it was before.

It seems that the CPU power management is best for APUs in its latest form - if dpm is not used or with 4076a65544e2de310cbf4eaadb13ee15bbfaaf4f reverted and dpm activated, the CPU is scaled with voltages between 0.9 and 1.34, using all frequencies, but if all cores are used, after a while (sometimes after a few seconds) the CPU becomes throttled (no obvious reasons) and the effective frequencies go down to around ~3 GHz or even lower, in some cases even ~ 2GHz or lower (temps go as high as 60C withut dpm and ~56C with dpm).

With the new code we have ~0.65 - 1.22 volts, the frequencies are maxed out at 3.168GHz (rarely 3.2) coupled with a lower max temperature(max 51C, mostly 49), but the frequencies are stable, i can compile a whole kernel with 4 threads and there is absolutely no throttling. Only thing is missing its the highest voltage level (1.34) which enables turbo mode.

Note You need to log in before you can comment on or make changes to this bug.