# i7 Xeon - x3440 Turbo doesn't seem to function fully

## NuMPTy

Hi Everyone,

According to intel's ARK, the x3440 should be able to turbo up to 2.93 Ghz on a single core, however the most I've ever seen has been 2.66Ghz across 4 cores (20x for all four according to i7z):

```
Cpu speed from cpuinfo 2526.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) 2526 MHz

  CPU Multiplier 19x || Bus clock frequency (BCLK) 132.95 MHz

Socket [0] - [physical cores=4, logical cores=8, max online cores ever=4]

  TURBO ENABLED on 4 Cores, Hyper Threading ON

  Max Frequency without considering Turbo 2658.95 MHz (132.95 x [20])

  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  22x/21x/20x/20x

  Real Current Frequency 2659.01 MHz [132.95 x 20.00] (Max of below)

        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %  Temp

        Core 1 [0]:       2658.91 (20.00x)      4.22    95.6       0       0    51

        Core 2 [1]:       2658.94 (20.00x)      4.89    94.9       0       0    51

        Core 3 [2]:       2658.95 (20.00x)         1    99.5       0       0    53

        Core 4 [3]:       2659.01 (20.00x)      4.08    95.7       0       0    50

```

Max scaling doesn't even show something above 2.52:

```
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 

2528000 2527000 2394000 2261000 2128000 1995000 1862000 1729000 1596000 1463000 1330000 1197000 

```

cpuinfo for those of you who are interested:

```
# cat /proc/cpuinfo 

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 30

model name      : Intel(R) Xeon(R) CPU           X3440  @ 2.53GHz

stepping        : 5

microcode       : 0x3

cpu MHz         : 2528.000

cache size      : 8192 KB

physical id     : 0

siblings        : 8

core id         : 0

cpu cores       : 4

apicid          : 0

initial apicid  : 0

fpu             : yes

fpu_exception   : yes

cpuid level     : 11

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi flexpriority ept vpid

bogomips        : 5054.28

clflush size    : 64

cache_alignment : 64

address sizes   : 36 bits physical, 48 bits virtual

power management:

```

Can anyone point me in the right direction for getting up to 22x on a single core?

Thanks!

----------

## lxg

Maybe you have to activate it in the BIOS?

----------

## Gusar

Which CPU governor are you running? You need to be using the ondemand governor and then run a single-thread task that stresses the CPU 100%. From your output, that does not appear to be the case.

----------

## jathlon

Have a look at this blog;

http://technicallyliving.blogspot.ca/2012/06/intel-turboboost-and-linux.html

I have a i7 3820 and I see essentially the same thing when I look at the files that you referenced.  They don't tell the whole story. :)

joe

----------

## NuMPTy

 *Gusar wrote:*   

> Which CPU governor are you running? You need to be using the ondemand governor and then run a single-thread task that stresses the CPU 100%. From your output, that does not appear to be the case.

 

Hey Gusar,

Should I be running only "one" of these at a time?

```

# cat .config | grep -i config_cpu_freq_gov

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_POWERSAVE=y

CONFIG_CPU_FREQ_GOV_USERSPACE=y

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set

```

It's enabled in the bios (along with the multiple other available C states)

----------

## Gusar

You can have all of them in the kernel, the question is which one is active. You set the default in the kernel. At runtime, check with

```
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
```

available governors are at

```
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
```

and to switch (do this as root)

```
for i in `seq 0 7`; do echo ondemand > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor; done
```

But basically, ondemand is the one you should be using all the time. It's the only one to appropriately manage the CPU. Only use something else if you really, really know that you need it, which you don't. So configure your kernel to use ondemand by default.

----------

## NuMPTy

That did it, thank you Gusar  :Smile: 

----------

