How to enable AMD Turbo Core on Ubuntu 14.04?

15,925

Solution 1

[Update 2015]

Starting with Linux 3.16:

  • The value for bapm can be provided as a module parameter (see here).

  • The value of bapm is set to 1 by default for Kaveri, Kabini and desktop Trinity, Richland systems (see here), resulting in Turbo Core being enabled.

Which means that with Kernel 3.16 or later, Turbo Core should work right out of the box with radeon in many cases.

If you run Debian, or if you run Ubuntu and the above is not true for you, please refer to How to set up a Debian system (focus on 2D or console/server) with an AMD Turbo Core APU for maximum energy and computing efficiency?

[Update 2014-Aug-07]

I published a detailed analysis over at unix-stackexchange.com which contains (at least for me) a few surprises. Such as the ondemand governor potentially being worse than performance (at least with the Richland A10-6700) and fglrx apparently using some questionable tricks to improve short-term boosts, abruptly having to compensate for that in the long run. I'm glad I had a closer look at this.

[Original Answer]

I am in the process of configuring a system with an A10-6700 using Ubuntu 14.04 Server.

  • The output of cat /proc/cpuinfo does not, and will not, reflect any processor boost. The boost is an autonomous decision on the chip based on potentially complex criteria. Read about it here.
  • The output of cpufreq-info will not show available boost frequencies, but the output of cpupower frequency-info will. For the A10-6700, it should show 4300 MHz (Pb0), 4200 MHz (Pb1) and 3900 MHz (Pb2) in addition to the regular 3700, 3400, 2700, 2300 and 1800 MHz.
  • The output of cpufreq-aperf (after modprobe msr) is comparable to the output of cpupower monitor. The frequencies shown by these tools are supposed to reflect boosts.
  • With the standard video driver or even the radeon module in the kernel, I did not succeed to get the A10-6700 to use a boost frequency (using stress --cpu 2).
  • Withe the ATI/AMD fglrx module loaded into the kernel, the processor will boost two cores permanently (and apparently also the remaining cores temporarily). This was tested without X being used or even configured.

Remember, the decision for or against the boost is made by the APU autonomously. My guess at this point in time is that the APU cannot decide whether its current power dissipation leaves room for a boost unless the integrated graphics unit is adequately initialised.

The video output with the standard module differs from the output when fglrx is loaded. Therefore, we can only guess whether the kernel can put the APU into the presumably required "smart" (power loss aware) mode by itself, while still using the VGA module.

Until this gets sorted out, I will simply load fglrx. The downside is that building it it requires a lot of stuff which you don't want on a server and which needs to be deleted after compilation.

Also, fglrx is almost 9 MB in size. It's not a problem but knowing that it's mostly dead freight in this case doesn't make me too happy.

[Edit 2014-Jul-24]

I now reported this bug.

I noticed another bug has also been reported: If in fact you use fglrx and try to use the Dynamic Power Management mode.

Solution 2

I have the same problem with my Thinkpad running the same AMD A8-4500m on Ubuntu 13.10. I found this today, but my english isn't that good,so I didn't understand it.

https://www.kernel.org/doc/Documentation/cpu-freq/boost.txt

May it be helpful for you.

The main commence I found is, that the Turbo Core isn't supported since 11.10. That's all I found. Please prove me that I'm wrong.

Share:
15,925

Related videos on Youtube

m132
Author by

m132

Updated on September 18, 2022

Comments

  • m132
    m132 over 1 year

    I'm using Ubuntu 14.04 (3.13.0-24-generic kernel) on AMD A8-4500m based laptop, and I've recently noticed, that AMD Turbo Core is not working at all. Everything works on Windows, however, on Linux CPU frequency can't get past 1.9 GHz (checked with cpufreq-aperf).

    Here is output of cpupower frequency-info, notice Active: no under boost state support:

    analyzing CPU 0:
      driver: acpi-cpufreq
      CPUs which run at the same hardware frequency: 0
      CPUs which need to have their frequency coordinated by software: 0
      maximum transition latency: 4.0 us.
      hardware limits: 1.40 GHz - 1.90 GHz
      available frequency steps: 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.40 GHz
      available cpufreq governors: conservative, ondemand, userspace, powersave, performance
      current policy: frequency should be within 1.90 GHz and 1.90 GHz.
                      The governor "ondemand" may decide which speed to use
                      within this range.
      current CPU frequency is 1.90 GHz (asserted by call to hardware).
      cpufreq stats: 1.90 GHz:32,63%, 1.80 GHz:0,74%, 1.70 GHz:0,50%, 1.60 GHz:1,20%, 1.40 GHz:64,93%  (9287)
      boost state support:
        Supported: yes
        Active: no
        Boost States: 2
        Total States: 8
        Pstate-Pb0: 2800MHz (boost state)
        Pstate-Pb1: 2300MHz (boost state)
        Pstate-P0:  1900MHz
        Pstate-P1:  1800MHz
        Pstate-P2:  1700MHz
        Pstate-P3:  1600MHz
        Pstate-P4:  1400MHz
        Pstate-P5:  900MHz
    

    More tests (ran with ondemand scheduler and 3 instances of ffmpeg decoding 1920x1080 H.264 video in background):

    [m132@m132 turbostat]$ sudo cpupower monitor
    [sudo] password for m132: 
         |Mperf               || Idle_Stats         
     CPU | C0   | Cx   | Freq || POLL | C1   | C2   
        0| 97,78|  2,22|  1821||  0,00|  0,00|  0,00
        1| 97,84|  2,16|  1821||  0,00|  0,00|  0,00
        2| 99,22|  0,78|  1807||  0,00|  0,00|  0,00
        3| 99,18|  0,82|  1808||  0,00|  0,00|  0,00
    [m132@m132 turbostat]$ sudo ./turbostat 
    cor CPU   GHz  TSC time
            1.81 1.90   5**
      0   0 1.81 1.90   5**
      1   1 1.81 1.90
      2   2 1.80 1.90
      3   3 1.81 1.90
    

    EDIT: It seems like Trinity series processors have it's own BAPM switch in source. It's located in drivers/gpu/drm/radeon/trinity_dpm.c and it's (at the time of writing) enabled only for MSI boards, because of stability issues. To enable it, open this file, find this line:

        pi->enable_bapm = false;
    

    Change false to true, then compile and install new kernel. You should get a kernel panic boost working now. Keep in mind that CPU power is also shared with GPU, so you'll almost never get the highest frequency available if GPU is also in use.

    • m132
      m132 about 10 years
      Weird, installing fglrx "activated" Turbo Core, and now it shows "Active: yes". cpufreq-aperf sometimes reports 2GHz frequency, but it still doesn't switch to 2,3 GHz or 2,8 GHz, like on Windows.
    • Chris
      Chris almost 10 years
      Just to confirm: I'm having the same problem with an A10-7850K under Fedora w/ kernel 3.14.5: Supported: yes, Active: no. Seems not to be distro-specific.
    • Chris
      Chris almost 10 years
      Can you try disabling kernel modesetting (nomodeset on kernel command line)? This fixed this issue for me.
    • m132
      m132 almost 10 years
      @Chris Now it shows Active: yes, but I assume that this info is wrong, because there are no Pstates shown and cpufreq-aperf still doesn't report frequency higher than 1,9 GHz. Also it forced use of software OpenGL renderer for me.
    • Chris
      Chris almost 10 years
      What about turbostat or cpupower monitor? Do they show turbo being used?
    • m132
      m132 almost 10 years
      @Chris I've updated question with output of these commands.
  • m132
    m132 about 10 years
    This link just explains what Turbo Boost/Core is and how to enable/disable it, but in my case /sys/devices/system/cpu/cpufreq/boost is already 1 (enabled).
  • m132
    m132 almost 10 years
    Thanks for the info. I'm going to compile new kernel with BAPM enabled, as suggested on 2nd bug report, to see if it makes any difference :)
  • Run CMD
    Run CMD almost 10 years
    @M132 That's sad. Still, it contributes to the suspicion. -- Do you see the same behaviour with Windows? -- Can you influence the fan control? -- It's a shame that the manufacturer apparently did not cooperate with AMD good enough -- TurboBoost is a regular feature within the scope of the TDP.
  • m132
    m132 almost 10 years
    I can't test now, because I removed Windows to create separate partition for /home. I don't know about fans, but I remember Task Manager, showing me 2,3 GHz CPU frequency, so TurboBoost was working, and it didn't overheat, so DPM was also working.
  • m132
    m132 almost 10 years
    Thanks to yesterday's comments on the issue you've reported, I finally got it working! Read the question for details :D
  • Suici Doga
    Suici Doga almost 8 years
    On my HP Pavilion g7 2269wm turbo core is working.Running stress --cpu 8 with performance governor and /sys/devices/system/cpu/cpufreq/boost set to 1 (default) the temperature goes to 88°C - 90°C (after it speeds up the fan after going to 93°C and then the temp goes down).But when setting turbo core file to 0 the temperature only goes up-to 79°C - 80°C. These temperatures are good for my laptop model and it doesn't throttle(this laptop used to overheat and throttle at 98C but after reapplying thermal paste it only goes up-to the previously mentioned temperatures)
  • Suici Doga
    Suici Doga almost 8 years
    And I am also running elementary OS freya (based on Ubuntu 14.04)