openSUSE is not utilizing Turbo Boost

Hi,

I just found that the openSUSE installed in my Lenovo Yoga 13 (with Intel® Core™ i5-3317U Processor) does not utilize Turbo Boost technology. Whatever I do, the CPU clock does not go up more than 1.7 GHz, where in Windows it goes up to 2.6 GHz.

Best,
Joon

On 03/30/2013 06:56 PM, joonro wrote:
>
> Hi,
>
> I just found that the openSUSE installed in my Lenovo Yoga 13 (with
> Intel® Core™ i5-3317U Processor) does not utilize Turbo Boost
> technology. Whatever I do, the CPU clock does not go up more than 1.7
> GHz, where in Windows it goes up to 2.6 GHz.
>
> Best,
> Joon

Well… I’m not sure. But I believed that Turbo Boost was not designed to be the
top “normal” clock rate. So I don’t know the mystery algorithm by which the
extra clocking comes into play. In other words, it’s not like a normal variable
clock speed CPU, where under load you get the highest clock. Turbo Boost is
something different.

Quoting from Intel’s website:

Intel Turbo Boost Technology 2.0 is activated when the Operating System (OS)
requests the highest processor performance state (P0).

The maximum frequency of Intel Turbo Boost Technology 2.0 is dependent on the
number of active cores. The amount of time the processor spends in the Intel
Turbo Boost Technology 2.0 state depends on the workload and operating environment.

Any of the following can set the upper limit of Intel Turbo Boost Technology 2.0
on a given workload:

Number of active cores
Estimated current consumption
Estimated power consumption
Processor temperature

When the processor is operating below these limits and the user’s workload
demands additional performance, the processor frequency will dynamically
increase until the upper limit of frequency is reached. Intel Turbo Boost
Technology 2.0 has multiple algorithms operating in parallel to manage current,
power, and temperature to maximize performance and energy efficiency. Note:
Intel Turbo Boost Technology 2.0 allows the processor to operate at a power
level that is higher than its rated upper power limit (TDP) for short durations
to maximize performance.

Well, I do not know how it works, but openSUSE is definitely not hitting the highest clock. The same Ptyhon + Cython code runs more than 2 times faster in Windows than in openSUSE.

-Joon

On Sun 31 Mar 2013 02:26:02 AM CDT, joonro wrote:

cjcox;2542931 Wrote:
> In other words, it’s not like a normal variable
> clock speed CPU, where under load you get the highest clock. Turbo
> Boost is
> something different.
>

Well, I do not know how it works, but openSUSE is definitely not
hitting the highest clock. The same Ptyhon + Cython code runs more than
2 times faster in Windows than in openSUSE.

-Joon

Hi
I packaged up i7z which on this i5 shows it (turbo boost)
available and working when needed…


Cpu speed from cpuinfo 2394.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 2393 MHz
CPU Multiplier 18x || Bus clock frequency (BCLK) 132.94 MHz

Socket [0] - [physical cores=2, logical cores=4, max online cores ever=2]
TURBO ENABLED on 2 Cores, Hyper Threading ON
Max Frequency without considering Turbo 2525.94 MHz (132.94 x [19])
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  22x/20x/0x/0x
Real Current Frequency 1544.95 MHz [132.94 x 11.62] (Max of below)

Package can be downloaded here;
http://download.opensuse.org/repositories/home:/malcolmlewis:/Miscellanous/openSUSE_12.3/


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.3 (x86_64) Kernel 3.7.10-1.1-desktop
up 0:35, 3 users, load average: 0.05, 0.14, 0.13
CPU Intel® i5 CPU M520@2.40GHz | GPU Intel® Ironlake Mobile

Check whether this works for you https://forums.opensuse.org/blogs/jdmcdaniel3/c-f-u-cpu-frequency-utility-version-1-23-use-cpufrequtils-package-40/

Thanks. It seems it is detected correctly:


Cpu speed from cpuinfo 1695.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc
Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 1696 MHz
  CPU Multiplier 17x || Bus clock frequency (BCLK) 99.76 MHz

Socket [0] - [physical cores=2, logical cores=4, max online cores ever=2]
  TURBO ENABLED on 2 Cores, Hyper Threading ON
  Max Frequency without considering Turbo 1795.76 MHz (99.76 x [18])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  26x/24x/24x/24x
  Real Current Frequency 1397.27 MHz [99.76 x 14.01] (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %   C7 %  Temp
        Core 1 [0]:       871.42 (8.73x)        9.52    9.06    1.14       0    84.9    45
        Core 2 [2]:       1397.27 (14.01x)        14    13.7    4.15       1    69.6    45

I do not know why the same code is more than two times slower than Windows.
Please let me know if I’m missing something.

-Joon

On Sun 31 Mar 2013 07:46:03 PM CDT, joonro wrote:

malcolmlewis;2542960 Wrote:
> Hi
> I packaged up i7z which on this i5 shows it (turbo boost)
> available and working when needed…
>

Thanks. It seems it is detected correctly:

Code:

Cpu speed from cpuinfo 1695.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try
estimating via tsc Linux’s inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 1696 MHz
CPU Multiplier 17x || Bus clock frequency (BCLK) 99.76 MHz

Socket [0] - [physical cores=2, logical cores=4, max online cores
ever=2] TURBO ENABLED on 2 Cores, Hyper Threading ON
Max Frequency without considering Turbo 1795.76 MHz (99.76 x [18])
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is
26x/24x/24x/24x Real Current Frequency 1397.27 MHz [99.76 x 14.01] (Max
of below) Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3
% C6 % C7 % Temp Core 1 [0]: 871.42 (8.73x) 9.52
9.06 1.14 0 84.9 45 Core 2 [2]: 1397.27
(14.01x) 14 13.7 4.15 1 69.6 45

I do not know why the same code is more than two times slower than
Windows.
Please let me know if I’m missing something.

-Joon

Hi
When you run your code, monitor via i7z, does the cpu(s) speed change?

Have you checked the system also via cpupower;


zypper in cpupower
cpupower frequency-info


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.3 (x86_64) Kernel 3.7.10-1.1-desktop
up 5:51, 3 users, load average: 0.06, 0.05, 0.05
CPU Intel® i5 CPU M520@2.40GHz | GPU Intel® Ironlake Mobile

Hi,

Sorry for the late reply. I haven’t boot into openSUSE for a while since I had to run the code. Anyway, I just checked this, and I’ve got:


$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 782 MHz - 1.70 GHz
  available frequency steps: 1.70 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz, 782 MHz
  available cpufreq governors: conservative, userspace, powersave, ondemand, performance
  current policy: frequency should be within 782 MHz and 1.70 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.70 GHz.
  boost state support:
    Supported: yes
    Active: yes

Which looks like it is only using 1.70 GHz. I haven’t had chance to check i7z output while I’m running my code since I am installing a missing dependency right now, but I will post the results as soon as I get them.

-Joon

So I tried to run the code with i7z open in the terminal. In Actual Freq part, it actually hit about 2396 for Core 1 and Core 2 when I run the code. (By the way, is there a way to grab the output of i7z?) Again, the same code which takes about 0.5 seconds in Windows takes about
1.1 seconds in openSUSE.

-Joon

On Fri 05 Apr 2013 03:06:01 PM CDT, joonro wrote:

malcolmlewis;2543207 Wrote:
> Hi
> When you run your code, monitor via i7z, does the cpu(s) speed change?
>

So I tried to run the code with i7z open in the terminal. In Actual
Freq part, it actually hit about 2396 for Core 1 and Core 2 when I run
the code. (By the way, is there a way to grab the output of i7z?) Again,
the same code which takes about 0.5 seconds in Windows takes about
1.1 seconds in openSUSE.

-Joon

Hi
Wonder if it is related to this thread?
https://forums.opensuse.org/english/other-forums/development/programming-scripting/484988-executable-running-slower-opensuse-12-3-a.html


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.3 (x86_64) Kernel 3.7.10-1.1-desktop
up 3 days 22:49, 3 users, load average: 0.06, 0.07, 0.05
CPU Intel® i5 CPU M520@2.40GHz | GPU Intel® Ironlake Mobile

I have a bash script that can set your default CPU speed governor: https://forums.opensuse.org/blogs/jdmcdaniel3/c-f-u-cpu-frequency-utility-version-1-23-use-cpufrequtils-package-40/

I have a blog on how YaST sets your startup config here: https://forums.opensuse.org/blogs/jdmcdaniel3/yast-power-management-control-your-cpu-energy-usage-how-faq-28/

The CFU bash script can be automated to run at startup to set any session default you want to use beyond the basics set by YaST.

Thank You,

Indeed. I’m still reading the thread but it looks to be the same problem. At first I thought it was Python/Cython problem, and then CPU freq problem, but I guess I have been wrong. Thank you!!

-Joon

Thank you very much for your reply! However this problem seems to be related to a bug in libm - C math library (https://forums.opensuse.org/english/other-forums/development/programming-scripting/484988-executable-running-slower-opensuse-12-3-a-4.html). I do use this in my code as well.

-Joon

Hmm … I just tried to use libm 2.15 from openSUSE 12.2, and it did make the code run faster, but it is still about 2 times slower than Windows. I will make some more tests and report.

I have tried your script; the same thing as I can only choose up to 1.701 Ghz, and even if I choose performance, I still get slow performance.

-Joon

It is possible to compile your own kernel and change the default governor used in the kernel. If interested, I could dig out the exact instructions to make the change.

Thank You,