# Intel P state always at max freq when idle

## Bloot

Hello,

I recently upgraded to a i5-4590 Haswell refresh installed on a Gigabyte Z97P-D3 motherboard, so I activated Intel P state in the kernel. But it always stays at maximum frequency when the system is idle, it only scales down when it's busy which is disconcerting, it behaves the opposite way   :Question: 

My kernel setup

```
$ cat /usr/src/linux/.config | grep CPU_FREQ 

CONFIG_CPU_FREQ=y

# CONFIG_CPU_FREQ_STAT is not set

CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y

# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set

# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set

# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_POWERSAVE=y

# CONFIG_CPU_FREQ_GOV_USERSPACE is not set

# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set

# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
```

```
$ cat /usr/src/linux/.config | grep PSTATE

CONFIG_X86_INTEL_PSTATE=y
```

```
$ cat /usr/src/linux/.config | grep NO_HZ

CONFIG_NO_HZ_COMMON=y

CONFIG_NO_HZ_IDLE=y

# CONFIG_NO_HZ_FULL is not set

# CONFIG_NO_HZ is not set

# CONFIG_RCU_FAST_NO_HZ is not set
```

Is there something I am missing, or is this driver really buggy? I am turning mad, I've compiled the kernel lots of times with no luck, it always stays at maximum frequency (3700MHz) on idle and only scales down when compiling, surfing the net etc...

Some cpupower info:

```
# cpupower frequency-info

analyzing CPU 0:

  driver: intel_pstate

  CPUs which run at the same hardware frequency: 0

  CPUs which need to have their frequency coordinated by software: 0

  maximum transition latency: 0.97 ms.

  hardware limits: 800 MHz - 3.70 GHz

  available cpufreq governors: performance, powersave

  current policy: frequency should be within 800 MHz and 3.70 GHz.

                  The governor "powersave" may decide which speed to use

                  within this range.

  current CPU frequency is 3.69 GHz (asserted by call to hardware).

  boost state support:

    Supported: yes

    Active: yes
```

```
# cpupower idle-info

CPUidle driver: intel_idle

CPUidle governor: menu

Analyzing CPU 0:

Number of idle states: 6

Available idle states: POLL C1-HSW C1E-HSW C3-HSW C6-HSW C7s-HSW

POLL:

Flags/Description: CPUIDLE CORE POLL IDLE

Latency: 0

Usage: 155

Duration: 148047

C1-HSW:

Flags/Description: MWAIT 0x00

Latency: 2

Usage: 29439

Duration: 3517980

C1E-HSW:

Flags/Description: MWAIT 0x01

Latency: 10

Usage: 13720

Duration: 8908518

C3-HSW:

Flags/Description: MWAIT 0x10

Latency: 33

Usage: 23891

Duration: 23960449

C6-HSW:

Flags/Description: MWAIT 0x20

Latency: 133

Usage: 3355

Duration: 4377164

C7s-HSW:

Flags/Description: MWAIT 0x32

Latency: 166

Usage: 33282

Duration: 88202668
```

```
# cpupower monitor

    |Nehalem                    || SandyBridge        || Mperf              || Idle_Stats                              

CPU | C3   | C6   | PC3  | PC6  || C7   | PC2  | PC7  || C0   | Cx   | Freq || POLL | C1-H | C1E- | C3-H | C6-H | C7s- 

   0|******|******|******|******||******|******|******||******|******|******||  0,00|  0,32|  0,12|  0,36|  0,33| 98,49

   1|******|******|******|******||******|******|******||******|******|******||  0,00|  0,00|  0,00|  0,20|  0,00| 103,6

   2|******|******|******|******||******|******|******||******|******|******||  0,00|  0,35|  0,09|  0,21|  0,25| 92,30

   3|******|******|******|******||******|******|******||******|******|******||  0,00|  0,47|  0,01|  0,35|  0,20| 101,9

```

Temperatures are ok though

```
$ sensors

coretemp-isa-0000

Adapter: ISA adapter

Physical id 0:  +36.0°C  (high = +80.0°C, crit = +100.0°C)

Core 0:         +32.0°C  (high = +80.0°C, crit = +100.0°C)

Core 1:         +30.0°C  (high = +80.0°C, crit = +100.0°C)

Core 2:         +31.0°C  (high = +80.0°C, crit = +100.0°C)

Core 3:         +33.0°C  (high = +80.0°C, crit = +100.0°C)
```

I'd really appreciate if someone can shed some ligh, thanks.Last edited by Bloot on Fri Mar 27, 2015 6:00 pm; edited 2 times in total

----------

## abduct

In the kernel try setting the "default CPUFreq governor" to "ondemand" so that the system adjusts the processor for you. The option can be found under "Power management and ACPI options -> CPU Frequency Scaling". Also try using the ACPI P-States option as I've read that the Intel P option has a similar bug in which it maxes out the CPU.

Source: I had a similar problem with a laptop and the processor not enabling turbo-boost or scaling automatically.

----------

## Bloot

 *abduct wrote:*   

> In the kernel try setting the "default CPUFreq governor" to "ondemand" so that the system adjusts the processor for you. The option can be found under "Power management and ACPI options -> CPU Frequency Scaling". Also try using the ACPI P-States option as I've read that the Intel P option has a similar bug in which it maxes out the CPU.
> 
> Source: I had a similar problem with a laptop and the processor not enabling turbo-boost or scaling automatically.

 

Thanks for you reply. I already tried ondemand, in fact I tried so many combinations I could spend the hole thread numering them   :Surprised: 

Intel themselves don't recommend using any other driver than their own's for the newer chips, so that's why I selected Intel P-State over ACPI P-States.

I think I've made some progress and maybe solved the erratic Intel P-State behaviour, I've disabled acpi processor:

```
$ cat /usr/src/linux/.config | grep PROCESSOR

# CONFIG_ACPI_PROCESSOR is not set
```

And now intel p state is working as it should, though it never stays permanently at 800MHz (as it did with ondemand and acpi p-states), it's always oscilating and frankly, I don't know if this is the correct behaviour. At least it's not always at full power frequency like before.

```
# cpupower frequency-info

analyzing CPU 0:

  driver: intel_pstate

  CPUs which run at the same hardware frequency: 0

  CPUs which need to have their frequency coordinated by software: 0

  maximum transition latency: 0.97 ms.

  hardware limits: 800 MHz - 3.70 GHz

  available cpufreq governors: performance, powersave

  current policy: frequency should be within 800 MHz and 3.70 GHz.

                  The governor "powersave" may decide which speed to use

                  within this range.

  current CPU frequency is 1.19 GHz (asserted by call to hardware).

  boost state support:

    Supported: yes

    Active: yes
```

```
$ cat /usr/src/linux/.config | grep IDLE

CONFIG_NO_HZ_IDLE=y

CONFIG_GENERIC_SMP_IDLE_THREAD=y

CONFIG_CPU_IDLE=y

CONFIG_CPU_IDLE_GOV_LADDER=y

CONFIG_CPU_IDLE_GOV_MENU=y

# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set

# CONFIG_INTEL_IDLE is not set

# CONFIG_I7300_IDLE is not set

# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
```

The drawback is that INTEL_IDLE cannot be used, or it will force max cpu frequency again, and thus cpupower is unable to show idle information without intel idle driver. But as long as it works, I don't mind not having access to idle information.

```
# cpupower idle-info

CPUidle driver: none

CPUidle governor: menu

Analyzing CPU 0:

CPU 0: No idle states
```

```
# cpupower monitor

    |Nehalem                    || SandyBridge        || Mperf              

CPU | C3   | C6   | PC3  | PC6  || C7   | PC2  | PC7  || C0   | Cx   | Freq 

   0|******|******|******|******||******|******|******||******|******|******

   1|******|******|******|******||******|******|******||******|******|******

   2|******|******|******|******||******|******|******||******|******|******

   3|******|******|******|******||******|******|******||******|******|******
```

So I'll mark it as solved, thank you very much and hope it helps someone.

----------

## albright

 *Quote:*   

> And now intel p state is working as it should, though it never stays permanently at 800MHz (as it did with ondemand and acpi p-states), it's always oscilating and frankly, I don't know if this is the correct behaviour

 

I think that's right; at least my two machines with p-state are like that

----------

## Bloot

 *albright wrote:*   

>  *Quote:*   And now intel p state is working as it should, though it never stays permanently at 800MHz (as it did with ondemand and acpi p-states), it's always oscilating and frankly, I don't know if this is the correct behaviour 
> 
> I think that's right; at least my two machines with p-state are like that

 

Thank you very much

Would you mind sharing your kernel config with me? Now powersave works without acpi processor, but can't get past 3500Mhz and this chip should get up to 3700Mhz, at least it did when Intel P-State forced the max frequency on idle.

----------

## Yamakuzure

You can only use performance and powersave governors, because the p-state driver does not support any other.

If you want other governors, you have to use ACPI and replace it using phc-intel (which is a p-state driver, too).

*but* : phc-intel can not fully power up the cpu. My 2.8 GHz i7 (With turbo up to 3.4 GHz) can not go over 2.6 GHz with phc-intel.

Therefore I use the intel pstate driver from the kernel.

With performance governor:

```
 ~ # LC_ALL=C cpupower frequency-info 

analyzing CPU 0:

  driver: intel_pstate

  CPUs which run at the same hardware frequency: 0

  CPUs which need to have their frequency coordinated by software: 0

  maximum transition latency: 0.97 ms.

  hardware limits: 800 MHz - 3.40 GHz

  available cpufreq governors: performance, powersave

  current policy: frequency should be within 800 MHz and 3.40 GHz.

                  The governor "performance" may decide which speed to use

                  within this range.

  current CPU frequency is 3.29 GHz (asserted by call to hardware).

  boost state support:

    Supported: yes

    Active: yes
```

and with powersave governor, AC unplugged:

```
 ~ # LC_ALL=C cpupower frequency-info 

analyzing CPU 0:

  driver: intel_pstate

  CPUs which run at the same hardware frequency: 0

  CPUs which need to have their frequency coordinated by software: 0

  maximum transition latency: 0.97 ms.

  hardware limits: 800 MHz - 3.40 GHz

  available cpufreq governors: performance, powersave

  current policy: frequency should be within 800 MHz and 3.40 GHz.

                  The governor "powersave" may decide which speed to use

                  within this range.

  current CPU frequency is 605 MHz (asserted by call to hardware).

  boost state support:

    Supported: yes

    Active: yes
```

(Interestingly the tool says that minimum frequency is 800MHz, but it was scaled down to 600MHz. ... conky reports the same, by the way...)

There seems to be something else wrong with your config if you can not use INTEL_IDLE. Or maybe it's the cpu?

Here is my config for reference:

```
 /usr/src/linux # grep -P "^[^#].*(FREQ|IDLE|PSTATE)" .config

CONFIG_NO_HZ_IDLE=y

CONFIG_GENERIC_SMP_IDLE_THREAD=y

CONFIG_CPU_FREQ=y

CONFIG_CPU_FREQ_GOV_COMMON=y

CONFIG_CPU_FREQ_STAT=m

CONFIG_CPU_FREQ_STAT_DETAILS=y

CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y

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=y

CONFIG_X86_INTEL_PSTATE=y

CONFIG_X86_ACPI_CPUFREQ=m

CONFIG_CPU_IDLE=y

CONFIG_CPU_IDLE_GOV_LADDER=y

CONFIG_CPU_IDLE_GOV_MENU=y

CONFIG_INTEL_IDLE=y
```

and this is what idle-info comes up with:

```
 ~ # LC_ALL=C cpupower idle-info

CPUidle driver: intel_idle

CPUidle governor: menu

Analyzing CPU 0:

Number of idle states: 6

Available idle states: POLL C1-HSW C1E-HSW C3-HSW C6-HSW C7s-HSW

POLL:

Flags/Description: CPUIDLE CORE POLL IDLE

Latency: 0

Usage: 20346

Duration: 20113894

C1-HSW:

Flags/Description: MWAIT 0x00

Latency: 2

Usage: 7175620

Duration: 2884307784

C1E-HSW:

Flags/Description: MWAIT 0x01

Latency: 10

Usage: 2076175

Duration: 1951980913

C3-HSW:

Flags/Description: MWAIT 0x10

Latency: 33

Usage: 3480621

Duration: 2181767439

C6-HSW:

Flags/Description: MWAIT 0x20

Latency: 133

Usage: 1282988

Duration: 980550922

C7s-HSW:

Flags/Description: MWAIT 0x32

Latency: 166

Usage: 23154988

Duration: 73947612700
```

I hope it helps.

----------

## Bloot

Thanks Yamakuzure, unfortunately when using you config my cpu never goes down 3.7GHz when idle hence the powersave doesn't work at all even if I adjust it manually.

```
# cpupower frequency-set --governor powersave && cpupower frequency-info && cat /proc/cpuinfo | grep MHz

Setting cpu: 0

Setting cpu: 1

Setting cpu: 2

Setting cpu: 3

analyzing CPU 0:

  driver: intel_pstate

  CPUs which run at the same hardware frequency: 0

  CPUs which need to have their frequency coordinated by software: 0

  maximum transition latency: 0.97 ms.

  hardware limits: 800 MHz - 3.70 GHz

  available cpufreq governors: performance, powersave

  current policy: frequency should be within 800 MHz and 3.70 GHz.

                  The governor "powersave" may decide which speed to use

                  within this range.

  current CPU frequency is 3.63 GHz (asserted by call to hardware).

  boost state support:

    Supported: yes

    Active: yes

cpu MHz      : 3628.066

cpu MHz      : 3680.789

cpu MHz      : 3588.105

cpu MHz      : 3665.835
```

So that's how I found out that disabling acpi_cpu and intel_idle did the trick, trial and error for hours! But then the chip can't get to the maximum frequency of 3.7GHz, just up to 3,5GHz. Maybe the problem is present only in the newer haswell refresh and it's a known bug.

Thanks for your time, I will remove the "solved" mark because it clearly it's not solved yet.

----------

## albright

Here is my config

```
/usr/src/linux $ grep -P "^[^#].*(FREQ|IDLE|PSTATE)" .config

CONFIG_NO_HZ_IDLE=y

CONFIG_GENERIC_SMP_IDLE_THREAD=y

CONFIG_CPU_FREQ=y

CONFIG_CPU_FREQ_GOV_COMMON=y

CONFIG_CPU_FREQ_STAT=y

CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

CONFIG_X86_INTEL_PSTATE=y

CONFIG_CPU_IDLE=y

CONFIG_CPU_IDLE_GOV_MENU=y

CONFIG_INTEL_IDLE=y

```

----------

## Ant P.

Intel cheats, basically. The newer chips use C-states alone for power saving - C2 and higher is effectively 0MHz, though you can't tell that from cpufreq numbers alone.

----------

## Bloot

It seems Intel P-States is broken for haswell refresh chips https://bugzilla.kernel.org/show_bug.cgi?id=93521

So must wait for next kernel sources and see if it has been adressed.

----------

## Bloot

4.0.5 kernel finally solved it.   :Very Happy: 

Edit

False alarm... once ati-drivers got compiled against the new kernel, the problem is there again, so I guess it's ati-drivers who prevents the cpu being idle.

----------

## Yamakuzure

 *Bloot wrote:*   

> 4.0.5 kernel finally solved it.  
> 
> Edit
> 
> False alarm... once ati-drivers got compiled against the new kernel, the problem is there again, so I guess it's ati-drivers who prevents the cpu being idle.

 There could be another issue.

Even in powersave mode, the CPUs can go up to maximum MHz including Turbo Boost if something wakes them up too often.

Could you try out powertop? Maybe it is something ompletely different?

(P.S : However: Powersave mode does *not* necessarily extend battery life, but may actually shorten it.

The reason is, that a CPU in a lower frequency needs longer to switch to C1, do its work, and switch back. So reducing the frequency actually lengthens the periods the CPUs are in a non-idle state, consuming more power. Theoretically.

Hence, unless undervolting the CPU, doing regular work while using the powersave governor, is a bad idea.  :Wink:  )

----------

## s4e8

There's NO freq at idle (C-state), all C3/C6/C7 states stop core-clock, C1 will running at low-speed if C1E enable, or high speed if C1E disable. The reported idle freq is useless.

----------

## Bloot

 *Yamakuzure wrote:*   

>  *Bloot wrote:*   4.0.5 kernel finally solved it.  
> 
> Edit
> 
> False alarm... once ati-drivers got compiled against the new kernel, the problem is there again, so I guess it's ati-drivers who prevents the cpu being idle. There could be another issue.
> ...

 

Hi, mine's a desktop computer, so no problem with batteries. It's funny, because before I compiled the proprietary ATi drivers, the frequency stayed at 800-900MHz with no cpu load (as it should), and after compiled the video drivers the cpu stays again at 3.7GHz with no cpu load, I can only guess it's a video drivers fault, or maybe the KDE desktop effects has also something to do with it (I tried disabling them, but no luck).

```
top - 01:36:20 up 10 min,  1 user,  load average: 0,92, 1,72, 1,08

Tasks: 213 total,   1 running, 212 sleeping,   0 stopped,   0 zombie

%Cpu(s):  1,6 us,  0,4 sy,  0,0 ni, 97,4 id,  0,6 wa,  0,0 hi,  0,0 si,  0,0 st

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                            

 5917 debaser   20   0  884192 129712  73484 S   3,0  1,6   0:08.83 chrome                                                             

 3017 debaser   20   0 3047140 133848 100236 S   1,7  1,7   0:14.88 kwin                                                               

 3812 debaser   20   0 1070612 268824 109188 S   1,3  3,3   0:13.78 chrome                                                             

 2604 root      20   0  436124 208408 163136 S   0,7  2,6   0:11.67 X                                                                  

 3734 debaser   20   0  331220  48672  33620 S   0,7  0,6   0:03.68 urxvt                                                              

 3865 debaser   20   0  437792  65600  51712 S   0,7  0,8   0:03.52 chrome                                                             

 7225 debaser   20   0  328648  45756  33136 S   0,7  0,6   0:02.87 urxvt                                                              

 5665 debaser   20   0  920888 154780  54300 S   0,3  1,9   0:01.56 chrome                                                             

 6068 debaser   20   0  954012 161688  59372 S   0,3  2,0   0:02.05 chrome                                                             

 7450 debaser   20   0  826720  86344  51108 S   0,3  1,1   0:00.24 chrome                                                             

 7761 debaser   20   0  328648  46256  33636 S   0,3  0,6   0:02.00 urxvt                                                              

    1 root      20   0    4168   1456   1352 S   0,0  0,0   0:00.41 init                                                               

    2 root      20   0       0      0      0 S   0,0  0,0   0:00.00 kthreadd                                                           

    3 root      20   0       0      0      0 S   0,0  0,0   0:00.06 ksoftirqd/0                                                        

    4 root      20   0       0      0      0 S   0,0  0,0   0:00.04 kworker/0:0                                                        

    5 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 kworker/0:0H                                                       

    6 root      20   0       0      0      0 S   0,0  0,0   0:02.20 kworker/u8:0                                                       

    7 root      20   0       0      0      0 S   0,0  0,0   0:00.48 rcu_sched                                                          

    8 root      20   0       0      0      0 S   0,0  0,0   0:00.00 rcu_bh                                                             

    9 root      rt   0       0      0      0 S   0,0  0,0   0:00.00 migration/0                                                        

   10 root      rt   0       0      0      0 S   0,0  0,0   0:00.00 migration/1                                                        

   11 root      20   0       0      0      0 S   0,0  0,0   0:00.02 ksoftirqd/1                                                        

   13 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 kworker/1:0H                                                       

   14 root      rt   0       0      0      0 S   0,0  0,0   0:00.00 migration/2                                                        

   15 root      20   0       0      0      0 S   0,0  0,0   0:00.01 ksoftirqd/2                                                        

   17 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 kworker/2:0H                                                       

   18 root      rt   0       0      0      0 S   0,0  0,0   0:00.00 migration/3                                                        

   19 root      20   0       0      0      0 S   0,0  0,0   0:00.02 ksoftirqd/3                                                        

   21 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 kworker/3:0H                                                       

   22 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 khelper                                                            

   23 root      20   0       0      0      0 S   0,0  0,0   0:00.00 kdevtmpfs                                                          

   24 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 netns                                                              

   27 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 perf                                                               

  286 root      20   0       0      0      0 S   0,0  0,0   0:00.00 khungtaskd                                                         

  287 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 writeback                                                          

  289 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 crypto                                                             

  290 root      20   0       0      0      0 S   0,0  0,0   0:00.01 kworker/1:1                                                        

  291 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 bioset                                                             

  293 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 kblockd 
```

I think I'll give up, funniest thing is the chip frequencies works fine on Windows, it's just Linux related.

----------

## s4e8

new intel_idle, export both C1 and C1E states, let the cpuidle gorvenor choose which one to use. ACPI idle driver always combine C1 and C1E, and auto-promotion to C1E if BIOS enable it. Unless cpu wont enter deeper C3 or C6 states, there's NO problem if idle governor prefer to C1 instead C1E.

----------

## Bloot

 *s4e8 wrote:*   

> new intel_idle, export both C1 and C1E states, let the cpuidle gorvenor choose which one to use. ACPI idle driver always combine C1 and C1E, and auto-promotion to C1E if BIOS enable it. Unless cpu wont enter deeper C3 or C6 states, there's NO problem if idle governor prefer to C1 instead C1E.

 

Yes I'm giving up, I guess it's the normal Haswell refresh chips behaviour under Linux, most important temps are OK, thank you all.

----------

## Yamakuzure

@Bloot: I meant "sys-power/powertop", not "top".

But as you are on a desktop computer without battery, it wouldn't help that much anyway. I guess you are right, and your desktop hardware simply isn't able to do it like you want. I always assumed you were on a laptop.

However, my laptop came shipped with an ATI card, but both the open source and proprietary drivers gave me too much trouble. I had it replaced by an nvidia card and am happy now. So if you are right, and it is a driver issue with the proprietary ATI-Drivers, I can at least be sure that my decision was a good one.  :Wink: 

For completenes' sake:

Output with AC connected on my laptop:

```
 ~ # LC_ALL=C powertop --time=5

PowerTOP 2.6      Overview   Idle stats   Frequency stats   Device stats   Tunables                                     

Summary: 4506.7 wakeups/second,  109.7 GPU ops/seconds, 0.0 VFS ops/sec and 23.5% CPU use

                Usage       Events/s    Category       Description

            137.0 ms/s     2169.6       Process        /usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf

              7.7 ms/s     1109.8       Process        akonadiserver

             43.3 ms/s     429.8        Process        /usr/bin/lancelot

              1.3 ms/s     255.1        Process        /usr/games/bin/wesnoth

              2.6 ms/s     204.2        Timer          tick_sched_timer

              6.8 ms/s     147.8        Process        kdeinit4: plasma-desktop [kdeinit]

              2.1 ms/s     125.9        Timer          hrtimer_wakeup

              9.0 ms/s      34.3        Process        /usr/bin/firefox

              6.9 ms/s      37.6        Process        /usr/bin/X :0 -auth /var/run/sddm/:0 -nolisten tcp -background none -noreset vt7

              2.0 ms/s      27.7        Interrupt      [25] i915

              1.0 ms/s      11.2        Process        kwin -session 10143143147fd000143149784900000084790000_1434736059_314150

              1.5 ms/s       8.4        Process        /usr/bin/yakuake -session 10143143147fd000140059895900000131970026_1434736059_305163

              4.1 ms/s       7.0        Process        /usr/bin/kontact

              8.5 us/s       6.6        kWork          blk_delay_work

            104.6 us/s       6.0        Process        /usr/lib/jvm/oracle-jdk-bin-1.8//bin/java -classpath /usr/share/davmail-bin/lib/activation-1.1.1.jar:/usr/share/davmail-bin/lib

             16.7 us/s       5.8        Process        [rcu_sched]

             58.6 us/s       3.4        Process        [z_null_iss/0]

            529.7 us/s       2.2        Process        /usr/bin/conky

            154.0 us/s       2.0        Process        [z_wr_iss/1]

             23.0 us/s       2.0        Process        [txg_sync]

            651.9 us/s       1.4        Interrupt      [30] snd_hda_intel

            155.8 us/s       1.4        Process        [z_wr_iss/0]

              1.9 ms/s       0.6        Process        [uksmd]

             65.0 us/s       1.0        Process        /usr/sbin/syslog-ng --persist-file /var/lib/syslog-ng/syslog-ng.persist --cfgfile /etc/syslog-ng/syslog-ng.conf --pidfile /run/
```

Output while on batteries on my laptop with powersave governor (600-800MHz on all 8 CPUs):

```
 ~ # LC_ALL=C powertop --time=5

PowerTOP 2.6      Overview   Idle stats   Frequency stats   Device stats   Tunables                                     

The battery reports a discharge rate of 20.0 W

The estimated remaining time is 3 hours, 21 minutes

Summary: 2671.8 wakeups/second,  148.2 GPU ops/seconds, 0.0 VFS ops/sec and 19.9% CPU use

                Usage       Events/s    Category       Description

             18.9 ms/s     1041.9       Process        /usr/games/bin/wesnoth

             60.7 ms/s     433.6        Process        /usr/bin/firefox

              2.5 ms/s     324.9        Timer          tick_sched_timer

             11.8 ms/s     182.6        Process        kdeinit4: plasma-desktop [kdeinit]

              6.9 ms/s     162.8        Process        /usr/bin/conky

              9.7 ms/s     148.8        Process        kwin -session 10143143147fd000143149784900000084790000_1434736059_314150

              4.8 ms/s      83.9        Process        /usr/bin/yakuake -session 10143143147fd000140059895900000131970026_1434736059_305163

              1.9 ms/s      73.7        Interrupt      [25] i915

              1.0 ms/s      62.2        Process        [txg_sync]

            334.0 us/s      56.0        Process        [rcu_sched]

              1.2 ms/s      43.7        Process        /usr/lib/jvm/oracle-jdk-bin-1.8//bin/java -classpath /usr/share/davmail-bin/lib/activation-1.1.1.jar:/usr/share/davmail-bin/lib

             27.4 ms/s      21.7        Process        /usr/bin/X :0 -auth /var/run/sddm/:0 -nolisten tcp -background none -noreset vt7

            311.6 us/s      25.6        Process        /usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf

              1.3 ms/s      22.7        Process        /usr/sbin/syslog-ng --persist-file /var/lib/syslog-ng/syslog-ng.persist --cfgfile /etc/syslog-ng/syslog-ng.conf --pidfile /run/

            280.3 us/s      21.3        Process        [z_null_iss/0]

              5.5 ms/s      18.9        Process        default.sh

              6.8 ms/s       7.4        Process        acpid

              0.7 ms/s       7.6        Process        /usr/sbin/acpid --netlink

              7.0 ms/s       3.8        Process        sh

            130.1 us/s       4.6        kWork          acpi_os_execute_deferred

              5.1 ms/s       2.4        Process        [uksmd]
```

Idle stats:

```
          Package   |             Core    |            CPU 0       CPU 4

                    |                     | C0 active   2.6%        0.9%

                    |                     | POLL        0.0%    0.0 ms  0.0%    0.0 ms

                    |                     | C1E-HSW     0.1%    0.1 ms 19.6%   49.5 ms

C2 (pc2)   22.0%    |                     |

C3 (pc3)    0.0%    | C3 (cc3)    0.4%    | C3-HSW      1.6%    0.4 ms  0.0%    0.0 ms

C6 (pc6)    0.0%    | C6 (cc6)    0.2%    | C6-HSW      1.5%    1.0 ms  0.0%    0.0 ms

C7 (pc7)    0.0%    | C7 (cc7)   33.4%    | C7s-HSW    93.6%    2.5 ms 35.8%   15.0 ms

                    |             Core    |            CPU 1       CPU 5

                    |                     | C0 active   2.3%        0.6%

                    |                     | POLL        0.0%    0.0 ms  0.0%    0.0 ms

                    |                     | C1E-HSW     5.4%    0.9 ms  1.6%    1.8 ms

                    |                     |

                    | C3 (cc3)    1.6%    | C3-HSW      2.1%    0.5 ms  0.0%    0.0 ms

                    | C6 (cc6)    0.9%    | C6-HSW      0.8%    0.6 ms  0.2%    0.7 ms

                    | C7 (cc7)   84.6%    | C7s-HSW    88.3%    3.2 ms 96.3%   60.7 ms

                    |             Core    |            CPU 2       CPU 6

                    |                     | C0 active   4.7%        1.5%

                    |                     | POLL        0.0%    0.0 ms  0.0%    0.0 ms

                    |                     | C1E-HSW    19.4%    5.7 ms  0.0%    0.0 ms

                    |                     |

                    | C3 (cc3)    1.2%    | C3-HSW      0.4%    0.5 ms  1.7%    2.1 ms

                    | C6 (cc6)    0.5%    | C6-HSW      0.5%    0.6 ms  0.3%    1.6 ms

                    | C7 (cc7)   70.7%    | C7s-HSW    73.6%    3.2 ms 96.6%   11.3 ms

                    |             Core    |            CPU 3       CPU 7

                    |                     | C0 active   2.0%        0.2%

                    |                     | POLL        0.0%    0.0 ms  0.0%    0.0 ms

                    |                     | C1E-HSW     0.5%    0.2 ms  0.0%    0.2 ms

                    |                     |

                    | C3 (cc3)    1.6%    | C3-HSW      1.7%    0.4 ms  0.0%    0.1 ms

                    | C6 (cc6)    0.8%    | C6-HSW      0.8%    0.6 ms  0.1%    0.3 ms

                    | C7 (cc7)   91.0%    | C7s-HSW    93.1%    1.6 ms 99.7%   83.8 ms

                    |             GPU     |

                    |                     |

                    | Powered On  1.5%    |

                    | RC6        98.5%    |

                    | RC6p        0.0%    |

                    | RC6pp       0.0%    |

                    |                     |

                    |                     |
```

So you can at least see what wakes up your CPUs and what time they spend in which state.

----------

## yaclo

same problem here and it's a desktop   :Very Happy:  it's first generation haswell cpu i7 4770 / r9 290 

with radeonsi cpu frequency scaling works fine

but with fglrx cpu freq goes to max no matter what

fglrx prevents the cpu being idle

----------

