Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I'm running the latest Arch Linux on my ThinkPad t420 laptop, and am having an intermittent heat problem where my temp will rise from the typical ~45°C to ~75-90°C, and stay there until I reboot.

I've run several diagnostic tools, including the obvious htop and others that googling has suggested, including powertop, iostats, and surely others I don't recall. So far I've come up with no obvious issues, and ostensibly no differences in readouts whether my machine is running normally or in this hot state.

I've also killed most suspicious processes one by one (databases and other daemons), hoping to find the hidden culprit, to no avail.

Beyond these attempts, I don't know where to begin troubleshooting. I'm hoping someone could point me in the right direction to begin looking for the deeper issue.

To be precise, my question is not how to cool my machine, but rather what could cause a consistent 30+ degree heat change in a system where (reportedly) CPU and load is normal? And what tools/practices could I use to diagnose it?

Some notes that might be helpful:

  • I can cool the system (e.g. by disengaging the fan control completely), but it immediately heats up again if left alone. This seems to suggest that heat retention is not an issue, but rather something is continually generating heat.
  • CPU usage and load are reported by htop as normal after entering this hot state. This includes kernel threads. According to htop, the system is essentially idle (1-2% sytem wide CPU usage, a load of 0.10).
  • My machine uses Intel HD integrated graphics, and has no other graphics card. An nVidia card was an option for this model, as noted by @braiam; I did not opt for it.
  • @terdon brought up the CPU governor settings. My CPUs are set to powersave
  • My specific processor is a 2.7GHz Core i7-2620M.

Edit: At the time of writing this question, my fancontrol was not functioning properly and ran continually at a middle RPM range (3900 RPMs), even at high temps. At the suggestion of @Alex and @JustDanyul, this has been fixed. The underlying problem, however, still remains.

share|improve this question
1  
As slm implies, if the CPU is idle but the core temperature is too high, the only possible explanation is that excess heat was not dissipated after some event -- the only thing in there that can produce significant heat is the CPU. Think of turning a stove burner on full to boil some water, then putting a lid on it and turning the burner down to low: the water remains boiling perpetually because the heat cannot dissipate as fast as the low burner replaces it as long as the lid is on. Take it apart and clean it if it is that bad, just blowing air probably won't help much at this point. –  goldilocks Aug 7 '13 at 15:46
    
I'll definitely take it apart and clean it as I do suspect I'm having some air flow problems, but as it is the CPU will maintain a constant high temp indefinitely after whatever the event is that causes the extreme temperature change. Even if you leave the lid on the pot, the water temperature will go down at some point. My temp hits a number and simply stays there, consistently at that number, forever until I reboot. There's no gradual building of heat that would suggest it is having dissipation issues. I've been running under a full workload all morning and am sitting at 41 degrees. –  numbers1311407 Aug 7 '13 at 16:09
    
To put it another way, my temperature will regulate itself normally under expected stress. If I'm doing some hard compiling it might heat up to 60, 70 degrees, but when it's done it will cool down. –  numbers1311407 Aug 7 '13 at 16:14
    
Besides the fan, you may want to reapply the thermal paste. Cheaper thermal paste will dissipate over time. –  BlueRaja - Danny Pflughoeft Aug 7 '13 at 18:24
1  
Maybe this is a stupid question, but did you by any chance disabled ACPI? I had similar troubles some time ago with an old PC, that didn't boot with this option enabled, after disabling it, it finally booted, but was also overheating. –  Alko Aug 8 '13 at 14:43

5 Answers 5

The fan

Mine does this too, running Fedora 14. Try getting a compressed can of air and blowing out the vents on the back and side of the case.

Also periodically you'll wan to remove the keyboard and blow compressed air directly on the fan's blades. They get caked with dust and start to effect its effectiveness by weighting it down.

The best thing about the Thinkpads are the service manuals! They show you how to tear down your laptop and put it back together.

Bad process

The other thing I've noticed is that I'll occasionally have a process that's gone awry and will be consuming 100% of one of the cores. Kill this process usually brings the temperature back to normal.

You can use htop or top to see what process this is and either kill it from their or from a terminal using it's PID.

what else?

See my answer to this U&L Q&A for more tips on how to get temperature reads for the various components of your laptop. The Q&A is titled: How to get core temperature of haswell i7 cores in i3status.

share|improve this answer
    
This is definitely something I should do, but the odd thing to me is why it only goes into the hot state sometimes and persists until reboot, which immediately fixes the problem. It seems like something must be happening which is triggering the persistent change in heat. I have run htop to no avail. CPU usage is normal. –  numbers1311407 Aug 7 '13 at 14:11
    
Maybe some wakes signal with the kernel? –  Braiam Aug 7 '13 at 14:18
1  
@slm thanks, I have not tried that. I will do so next time it starts running hot and report the results. –  numbers1311407 Aug 7 '13 at 14:22
1  
@numbers1311407: Could be the reason rebooting solves the problem quickly is that this turns the CPU off for a few seconds allowing the temperature to drop below the cutoff point. The CPU is always hotter than ambient, whatever "ambient" is. –  goldilocks Aug 7 '13 at 15:53
1  
Please note that in the top command you can press "1" to see the load of individual cores. –  Christian Stewart Aug 15 '13 at 2:18

This is more of a long comment but you should have a look at thinkwiki.org it is the resource for Linux on ThinkPads. As for the temperature, I had similar problems with my t4500 and sorted it out by playing with

  1. The CPU governor which controls CPU frequency scaling. Your choices are:

    • Performance keeps the CPU at the highest possible frequency
    • Powersave keeps the CPU at the lowest possible frequency
    • Userspace exports the available frequency information to the user level (through the /sys file system) and permits user-space control of the CPU frequency
    • Ondemand scales the CPU frequencies according to the CPU usage (like does the userspace frequency scaling daemons, but in kernel)
    • Conservative acts like the ondemand but increases frequency step by step

    With ondemand, your CPU will only run at its highest speed when necessary. Ideally, this will be completely transparent for you, you machine will simply work as fast as necessary for the current tasks. To activate it do

    sudo echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    
  2. Fan control. There is a very nice utility called "Simple ThinkPad Fan Control" which allows you to fine tune the trigger temperatures that change the fan's speed. Also have a look through the information here.

share|improve this answer
    
Thanks that's very helpful. I've stumbled onto that wiki before but never really took note of what it was exactly. –  numbers1311407 Aug 7 '13 at 15:26
    
Just to note, all my CPUs are running in powersave –  numbers1311407 Aug 8 '13 at 14:16

I think that there is a problem about what you perceive is "hot". For the Thinkpad t420 (according to forums) is about 80-85 C and lets forget the nVidia card that might cause a rise of the temperature too (in fact the Optimus configuration might not work well, forcing your CPU to do GPU work). That say, your CPU maximum tolerated temperature is 100C (if it gets there the system will shutdown), while the ambiance is about 10.0°C to 35.0°C. That said, if your laptop is within the range is all ok (except for your battery and laptop life span).

Now you wanted to point out possible suspects. In this aspect, I would say that the poor implementation of nVidia with Linux may throw work to your CPU that won't show in htop (or anywhere) due to their infamous On-Demand system Optimus, which seems to fit your current predicament (it works fine until a moment, it just start heating without control). You should update your installation until you have Bumblebee fully configurated. You can use the bbswitch to dissable the nVidia card at will and see how it goes.

To install Bumblebee for Arch you can find the package on the repository. If you still haven't installed it.

share|improve this answer
    
I didn't opt for the nVidia card on this machine. Sorry, should have been clearer on that in the question. And while 80-85 isn't too hot, it's still hotter than mid 40s, which is what my computer normally runs at on a typical light workload. My issue is trying to determine what phantom condition "kicks in" and causes my consistent 45 to be a consistent 80-85. –  numbers1311407 Aug 9 '13 at 20:58

sensors shows my fan buzzing along at ~3900 RPM

Even with temp like ~75-90°C?

as manually ramping up the fan will cool the machine temporarily

So one problem is just that the fan speed isn't working automatically?

Forget about the auto, you can read the temperature correctly and you can control the fan speed manually, right? If so all you need to do is to find a working fan control script or roll out your own (poll the temperature and set the speed according to a table temp[i]=speed[i], when you set an higher speed keep it for a while even if the temperature get down, when you need to slow down the speed do it slowly and step by step).

About the poll, the best would be to have a temperature monitor daemon which trigger thermal change events, and the fan control script listening/waiting for those events, I though (maybe wrongly) once it was acpid but nowadays I don't know.

In both cases (your own/existing script) while you are not confident with the solution keep always an eye on temperature and RPM, the fan must not stop.

Solve this auto problem first, and if the overheat persist you can focus on the cause.

edit

You may want to try a tool like lttng to collect stats of the whole system through the time, but could be not easy to setup and could be expensive in terms of storage if you need to collect for a long time.

share|improve this answer
    
You're right that my fancontrol is working poorly, if at all. I'll look into getting it to respond properly, but fixing it isn't going to solve the underlying cause. I could let the thing loose at max 6400ish rpms all day and cool down a bit but its the cause that I'm trying to address. –  numbers1311407 Aug 11 '13 at 23:32

Since manually ramping up the fan solves the problem, this would be a excellent place to start troubleshooting, since this seems to suggest that the automatic fan control isn't working.

Now, you run arch linux, which is a brilliant distro (yes, i run it too) with a terrific wiki. So, I have to ask, did you RTFM? ;p

https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_T420#Fans

As far as I can see, you need to:

  1. enable the thinkpad_acpi kernel module
  2. install, and configure the thinkfan application from the AUR
  3. enable the thinkfan system service

Has this all been done?

UPDATE I'm glad to hear that your fan is now working correctly, rather than just spinning at a happy medium. (I take it this solved the problem of your machine running at temperatures over 80 degrees?)

In regards to answering whats the underlying cause of a 30 degree temperature change, well, I'm tempted to ask: Couldn't it be because of the fact that your fan wasn't working correctly?

Lets postulate that,

  • the processor is not working harder than normal
  • the temperature fluctuations are now replaced with fan speed fluctuations

Wouldn't it be safe to assume that there might not be a problem at all, and that the problem was simply that you fan was running at a level where it was just barely coping? And small changes in ambient temperature etc, put it over the limit of its capabilities?

For example, I had an Acer laptop, and on warm days, the fan was "constantly" spinning up and down. I bet if my fan wasn't able to actually adjust it self, I would have seen quite large temperature fluctuations as well :)

share|improve this answer
    
I just installed thinkfan. Thanks for the heads up on that. Yeah the detailed arch wiki is a great perk of the distro. I've been there a thousand times but I never stumbled across or thought to look for a page dedicated to my exact model, and had never seen thinkfan mentioned. Nice little script. That being said, this doesn't solve my actual problem: how do I diagnose the cause of my unusually high temp? Even if I disengaged the fancontrol and cut the thing loose at max RPM, it's only putting a bandaid on the real issue of the mystery heat. –  numbers1311407 Aug 12 '13 at 15:48
    
No, the problem still exists unchanged. I'm sitting here right now at 42 degrees. When my heat condition occurs I'll be running the same processes, the ambient will be equivalent, nothing ostensibly will have changed, but my temp will rise from a consistent 42 to a consistent 75+. I can cool it down: put it on a laptop cooler, disengage the fancontrol allowing to to spin at 6500 RPM, etc. But if I stop, it'll heat right back up to 75+. The fan at max speed is only slightly faster than it was going anyway. Fixing it was a good thing, but not a solution to the underlying problem. –  numbers1311407 Aug 13 '13 at 16:24

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.