# (No) thermal throttling on Core i7

## paraw

Hi, guys, I seem to have an issue with thermal throttling. When under heavy stress, my laptop (Intel Core i7 Q820) reaches very high temperatures and it does not throttle. For instance, compiling hugin the cores reached 96 °C, and yet /proc/acpi/processor/CPU0/throttling was showing all the time

```
state count:             8

active state:            T0

state available: T0 to T7

states:

   *T0:                  100%

    T1:                  87%

    T2:                  75%

    T3:                  62%

    T4:                  50%

    T5:                  37%

    T6:                  25%

    T7:                  12%
```

Do I need to have a particular driver in the kernel for the thermal throttling to work? Currently I have CONFIG_X86_PCC_CPUFREQ and CONFIG_X86_ACPI_CPUFREQ, and the multipliers seem to change according to the load. Also, in idle, the temperature is still relatively high, around 56 °C, with the fan continuously spinning. This also appears to be not proper.

The environment temperature is well below freezing, so I am sort-of-concerned for what's going to happen in the summer...

Any ideas/suggestions?

----------

## augury

Less powerful thoughts?  96 °C this is maximum?  I think the bios would handle all of the throttling.  You could check for updates.

----------

## paraw

The bios is updated. Does anyone know by any chance what is the thermal throttling threshold temperature for that CPU?

----------

## Ant P.

Do you have the intel_idle driver compiled in too? Is cpufreq actually set to something other than "performance"?

----------

## paraw

Cpufreq is set to ondemand. For what concerns the intel_idle driver, I'm not sure I understand what you're referring to. If you mean CONFIG_CPU_IDLE, then yes, it is compiled in; if you mean CONFIG_I7300_IDLE, then no, it is disabled, but isn't this one for the memory?

----------

## augury

I've got a gkrellm that has a cpufreq app that works.

I can go from 3200mhz to 400mhz right away and one processor follows the other.  It fuckin says userspace twice on this plugin, but the gkrellm has the date and time, volume, disk io, network status, etc.

it goes from about 59-62 to about 53 still running.  It was up around 67 untill I vacuumed the dust out of my fan intake.  I have a bios throttle at 75.

My workstation pulls about 320 watts total with the monitor and cpu running, 280 with no load and 180 with the monitor off.

----------

## paraw

So, the BIOS is up to date, but it still reaches high temperatures (for example, I'm compiling openoffice now and it's again over 94 °C). The thermal throttle count for all cores is constantly 0. Looking around it seems that a lot of other people have the opposite problem, namely the cores throttle too much. This makes me thing I must have made some mistake somewhere, maybe in the kernel configuration, and deactivated thermal throttling.

Any help still very appreciated.

Thanks

----------

## gr0x0rd

paraw, I did a gentoo install on my new laptop this past weekend which also has an i7 chip in it. I'm running 2.6.35-gentoo-r15 (the latest 2.6.36 kernel in portage would just hang). Maybe its a problem with your kernel version specifically? My cat /proc/cpuinfo

```
processor   : 0

vendor_id   : GenuineIntel

cpu family   : 6

model      : 30

model name   : Intel(R) Core(TM) i7 CPU       Q 740  @ 1.73GHz

stepping   : 5

cpu MHz      : 1734.000

cache size   : 6144 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 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 tpr_shadow vnmi flexpriority ept vpid

bogomips   : 3690.84

clflush size   : 64

cache_alignment   : 64

address sizes   : 36 bits physical, 48 bits virtual

power management:

...
```

Throttling worked right away for me with the following strategy:

-Ensure the userspace and ondemand governors are built into the kernel

-emerge -av cpufrequtils

-check cpufreq-set -g ondemand succeeds

-add above directive to /etc/conf.d/local.start

I also have the following also set in the kernel (thought I'm not even sure if my chip/set can utilize all of these):

```
<*>   Cpuidle Driver for Intel Processors

 Memory power savings  ---> 

  <*> Intel chipset idle memory power saving driver
```

My cpufreq-info:

```
analyzing CPU 0:

  driver: acpi-cpufreq

  CPUs which run at the same hardware frequency: 0 1 2 3 4 5 6 7

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

  maximum transition latency: 10.0 us.

  hardware limits: 933 MHz - 1.73 GHz

  available frequency steps: 1.73 GHz, 1.73 GHz, 1.60 GHz, 1.47 GHz, 1.33 GHz, 1.20 GHz, 1.07 GHz, 933 MHz

  available cpufreq governors: ondemand, userspace, performance

  current policy: frequency should be within 933 MHz and 1.73 GHz.

                  The governor "ondemand" may decide which speed to use

                  within this range.

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

  cpufreq stats: 1.73 GHz:0.85%, 1.73 GHz:0.01%, 1.60 GHz:0.01%, 1.47 GHz:0.01%, 1.33 GHz:0.01%, 1.20 GHz:0.02%, 1.07 GHz:0.02%, 933 MHz:99.07%  (12520)

```

System is currently running at 933Mhz per core at idle and 49C (but mind you I live in Canada.  :Wink:  )

Hope this helps.

----------

## paraw

gr0x0rd, cpufreq-info gives me similar information. In fact, my default governor is ondemand. The problem is, when the cores are under stress, sometimes they reach quite high temperatures. In these cases my understanding is that the cpu frequency should be automatically throttled down to reduce overheating. Unfortunately, this does not seem to happen and, so far, I'm failing to understand how to fix the issue.

Thanks a lot anyway for the help and the detailed information!  :Smile: 

----------

## EatMeerkats

According to http://www.overclockers.com/forums/showpost.php?s=5adcbc4c8f958b43f9876f70e752b167&p=5975810&postcount=6 , the i7 only starts thermal throttling at 100 C, so you are just not there yet.  :Smile: 

----------

## drescherjm

 *EatMeerkats wrote:*   

> According to http://www.overclockers.com/forums/showpost.php?s=5adcbc4c8f958b43f9876f70e752b167&p=5975810&postcount=6 , the i7 only starts thermal throttling at 100 C, so you are just not there yet. 

 

That is exactly what I was going to say. 96C is not hot enough to start throttling..

----------

## paraw

Oh... I see!  :Embarassed: 

I was unaware of this "detail". As a matter of fact, I was reading that the critical temperature for the cpu was 100 °C, so I was imagining/expecting that the thermal throttle would kick in before reaching the critical temperature.

Anyhow, thanks to all for the clarifying answers!

----------

## drescherjm

The temperature that causes damage is even higher then that.

----------

## augury

Probably but the sensors are in very specific locations.  There may be other locations that are producing temperatures greater than what the sensor picks up.

Solder melts at 180°C-190°C

----------

## Ormaaj

This could be a bad thing. The only way My processor could possibly get up to 100C is if the water pump died and I would hope it triggers an ACPI shutdown or MCE rather than just throttling to try and stay within limits.

----------

## x22

I have a laptop with C2D and I use cpufreqd to force throttling at 91 C (by using P-states not T-states since P-states are more effective). BIOS does throttling at 104 C (99 C according to coretemp) using some other mechanism (not P-states and not T-states, it seems to use C-states, since is causes CPU usage to decrease).

So your laptop likely does throttling at higher temperature and/or does not use T-states.

----------

## drescherjm

I believe thermal shutdown happens at a higher temperature. 120C to 125C?

----------

## ccube

Hi,

I also have a similar problem.

This is a DELL studio 1558 with an Core i7 820QM.

On heavy load the Temperatures are reaching ~100°C and there is no throttling i think.

With governor on performance or ondemand, the system will make a thermal stop everytime i emerge some big packages.

I only can use this laptop on powersave. When using Windows, i can see a cpu throttling to ~1100MhZ on load, so the temps wont get critical.

I activated all ACPI features and INTEL_IDLE in kernel, but i do not have Thermalzone Temps and acpitool -e

tells me:

```
  Function Show_CPU_Info : could not read directory /proc/acpi/processor/

  Make sure your kernel has ACPI processor support enabled.
```

What can be wrong here?

Thx in advance  :Smile: 

ccube

----------

## drescherjm

Is the CPU fan working correctly?

----------

## ccube

It seems like working correctly, but there is no possibillity to read out the fan speed.

----------

## depontius

Speaking as a semiconductor designer...

In the good old days, we qualified our stuff to 85C.

These days customers don't feel like investing in proper cooling any more, so we qual to 105C, 115C, or 125C.  Lest you simply say, "I'll take the the easy, hot stuff," keep in mind that there are reliability and cost implications to that choice.  Personally I'd rather never let my own stuff reach 85C.

The real danger here isn't so much damaging the bond wires, it's that the dopants in semiconductors aren't really fixed in place - they're not really "solid."  In a Monty Python sort of way, the dopants are just moving very, very slowly.  Increase the temperature enough and instead of moving very, very slowly they're just moving very slowly.  Let the dopants move around too much and your junctions just aren't where they used to be.  That can translate to slower devices, or in extreme cases things can short out.  Much more problematic would be the dopants used to tailor device thresholds.  When those move, so do device thresholds.

For that matter, I think temperature accelerates electromigration, as well.  That's where the electrons flowing through the wires start knocking the atoms around.  Knock enough of them around far enough, and your wire opens up.

As I said, I'd rather never get above 85C if I can help it.  I used to have a K6-3 which was prone to thermal problems, and I wrote a throttle daemon for it, to get me through compiles, since of course I ran Gentoo on it.

----------

## ccube

Well, does that really help us?

I talked to the DELL support. They changed the Notebook two times.

I can see that windows throttles the CPU on heavy load and high temps. Linux does not.

But this is not why i bought an 1,7ghz core i7 when i only can use 1ghz of them.

I think the cooling unit in this series is crap. (well in other notebooks, too)

the "normal" customer will not recognize this, but poweruser do.

If I could change to another cooling unit, which can handle the heat of an i7, i would do immediately.

But there is no possibillity for me  :Sad: 

This was the last DELL notebook i ever bought. And i hope i can find a laptop series, which can give me the performance i need.  :Very Happy: 

So I tried ncpufreqd for throttling the hot cpu, but it is not able to read my acpi temps, so i am stuck working on powersave mode even when emerging libreoffice.  :Sad: 

When @home, the notebook is on top of a ZM-NC1500 cooler, which lets me stress CPU/GPU not exeeding 100°C.

But this is not where i bought it for.

regards,

ccube

----------

