Bug 11161

Summary: modprobe coretemp fails with Intel Atom (model 1c)
Product: Drivers Reporter: Simon Depiets (sdepiets)
Component: Hardware MonitoringAssignee: Rudolf Marek (r.marek)
Status: CLOSED CODE_FIX    
Severity: high CC: bernhard.hartleb, dzhonw, jdelvare, mozilla_bugs, r.marek, vajorie
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.24 - 2.6.26 Subsystem:
Regression: No Bisected commit-id:
Attachments: The support for Intel ATOM

Description Simon Depiets 2008-07-25 05:56:36 UTC
Hi,

Latest working kernel version: None

Earliest failing kernel version: All

Distribution: Ubuntu

Hardware Environment: Acer Aspire One, http://www.mmo-tools.com/acpi/lspci.txt

Problem Description:
it seems that drivers/hwmon/coretemp.c doesn't support new Intel's Atom CPU
the error message is
coretemp: Unknown CPU model 1c
You can find more about this here on linux-acpi mailing list where the discussion started about fan speed control/cpu temperature
http://marc.info/?l=linux-acpi&m=121698923928851&w=2
I'll try do my best to help you, but i'm not a kernel hacker (yet?), I can answer you in french too if i'm not clear enough

Steps to reproduce:
$sudo modprobe coretemp
FATAL: Error inserting coretemp (/lib/modules/2.6.24-19-generic/kernel/drivers/hwmon/coretemp.ko): No such device
$dmesg -c
coretemp: Unknown CPU model 1c

Extra info :
  ACPI Dump : http://www.mmo-tools.com/acpi/acpidump.txt
  Sensors Detect : http://www.mmo-tools.com/acpi/sensors-detect-stat.txt

Thanks a lot
Comment 1 Rudolf Marek 2008-08-10 12:06:15 UTC
Created attachment 17169 [details]
The support for Intel ATOM
Comment 2 Simon Depiets 2008-08-10 18:44:53 UTC
OK, I'll test this today
Comment 3 Simon Depiets 2008-08-13 05:05:39 UTC
I'm sorry it will take additional time I failed at installing kernel from ubuntu... 
going back to gentoo...

It will take a few more days.
Comment 4 Simon Depiets 2008-08-14 00:59:37 UTC
OK, here we go, I installed a Fedora Core 9, after multiple failings on Gentoo, Debian, Ubuntu... I haven't try Mandriva yet, but building a kernel on Mandrake gave me headaches many years ago...
So after having the r8169 now well-known Kernel Oops I achieved building and installing, and booting on a patched 2.6.27-rc2 kernel.
Here is my first output, I haven't tryed sensors or anything else yet :

# uname -a
Linux localhost.localdomain 2.6.27-rc2 #1 SMP Thu Aug 14 02:07:37 CEST 2008 i686 i686 i386 GNU/Linux

# modprobe coretemp && dmesg -c
coretemp coretemp.0: Unable to read IA32_TEMPERATURE_TARGET MSR
coretemp coretemp.1: Unable to read IA32_TEMPERATURE_TARGET MSR
Comment 5 Rudolf Marek 2008-08-14 01:06:42 UTC
Hello,

Ok, so it means it has no IA32_TEMPERATURE_TARGET, you may continue the test. This error is OK.
Comment 6 Simon Depiets 2008-08-14 01:25:25 UTC
Well, good job, it seems to work, temperature moves correctly depending on cpu load.

#sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +29.0°C  (crit = +95.0°C)                  

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +29.0°C  (crit = +95.0°C)                  
Comment 7 Simon Depiets 2008-08-18 04:46:49 UTC
Is there something more to do to get it patched in 2.6.27-rc4 ?
Changing resolution?
Comment 8 Jean Delvare 2008-08-18 05:32:51 UTC
This is way too late for 2.6.27. This patch is 2.6.28 material.
Comment 9 Bernhard Hartleb 2008-09-16 00:01:54 UTC
I tested this patch on 2.6.27-rc4 and 2.6.26.
This 2 messages are appearing in the log:

coretemp coretemp.0: Unable to read IA32_TEMPERATURE_TARGET MSR
coretemp coretemp.1: Unable to read IA32_TEMPERATURE_TARGET MSR

Reading the temperature works as expected on Atom Z530.
Thanks for this patch!
Comment 10 Mihal K 2008-12-19 06:33:17 UTC
As of 2.6.28-rc9 this patch still isn't in the mainline tree.
Comment 11 Jean Delvare 2008-12-19 07:17:10 UTC
The patch in comment #1 no longer applies to the upstream kernel. Rudolf, can we have an updated patch? Then post it to the lm-sensors list with proper description and your S-o-B and I'll pick it there. Thanks.
Comment 12 Jonathan 2009-07-08 21:12:59 UTC
Perhaps the bug I just submitted is related to this one, or even a duplicate:
http://bugzilla.kernel.org/show_bug.cgi?id=13747

I get the same error attempting to load coretemp in 2.6.30.1 with a dual-core Atom N270 (supposedly) processor: "Unknown CPU model 1c".
Comment 13 Simon Depiets 2009-07-08 21:22:15 UTC
Well it seems the patch was never applied to the upstream kernel :x
Comment 14 Jonathan 2009-07-08 21:38:45 UTC
I wonder if that patch is safe for later kernels.........
Comment 15 Jonathan 2009-07-08 21:41:47 UTC
I guess not.  I'd be nice if someone could update the patch (and get it into the kernel tree).
Comment 16 Jean Delvare 2009-07-09 07:25:07 UTC
Rudolf Marek and myself are working on this right now:

http://lists.lm-sensors.org/pipermail/lm-sensors/2009-July/026263.html

We will attach the latest version of the patch to this bug soon. Please test it and report.
Comment 17 Jonathan 2009-07-09 08:16:46 UTC
That patch seems to work.  Upon loading the patched coretemp module, dmesg tells me:
[220204.631910] coretemp coretemp.0: Using relative temperature scale!
[220204.631933] coretemp coretemp.0: Unable to read IA32_TEMPERATURE_TARGET MSR
[220204.633260] coretemp coretemp.1: Using relative temperature scale!
[220204.633286] coretemp coretemp.1: Unable to read IA32_TEMPERATURE_TARGET MSR

But I get correct-looking and appropriately changing temperature readouts for both processor cores.
Comment 18 Jean Delvare 2009-07-09 08:24:31 UTC
Which patch did you test exactly? Rudolf sent an updated patch:

http://lists.lm-sensors.org/pipermail/lm-sensors/2009-July/026271.html

and there should be another update soon.
Comment 19 Jonathan 2009-07-09 08:55:07 UTC
I'd tried the patch linked to at the url you posted before.  I just tried the more recent one, which doesn't output any warnings, and also seems to work.

However, the thermal driver still creates a thermal zone which is always 27°C.
Comment 20 Jean Delvare 2009-07-09 09:06:44 UTC
The thermal driver is an ACPI thing, it has nothing to do with the coretemp driver. If ACPI reports a bogus temperature, you either have to get it fixed, or ignore it (blacklisting the thermal driver may or may not work depending on your distribution, and may or may not be a good idea depending on your BIOS implementation.)
Comment 21 Jonathan 2009-09-19 08:44:22 UTC
Any news on a new patch from Rudolf?  Maybe something that works with 2.6.31?
Comment 23 vajorie 2009-12-06 00:41:58 UTC
coretemp doesn't work (again?) with Intel Atom N280. 

Hardware Environment: 
Acer Aspire One AOD250-1613

lspci, lsmod, acpidump, and sensors-detect: http://drop.io/j3clgnv

uname -a: 
Linux aod250 2.6.31-ARCH #1 SMP PREEMPT Tue Nov 10 19:48:17 CET 2009 i686 Intel(R) Atom(TM) CPU N280 @ 1.66GHz GenuineIntel GNU/Linux

Problem Description:
drivers/hwmon/coretemp.c doesn't support Intel Atom N280 in Acer AOD250-1613

Error message:
* modprobe: FATAL: Error inserting coretemp (/lib/modules/2.6.31-ARCH/kernel/drivers/hwmon/coretemp.ko): No such device
* dmesg: coretemp: Unknown CPU model 1c
coretemp: Unknown CPU model 1c
Comment 24 Jean Delvare 2009-12-06 07:48:01 UTC
Support for the Atom went in kernel 2.6.32, you're running 2.6.31. No surprise it doesn't work. If you really want support, you have to backport the 2.6.32 coretemp driver to your 2.6.31 kernel.
Comment 25 vajorie 2009-12-23 06:07:29 UTC
I grabbed 2.6.32's coretemp, diffed with 2.6.31, changed it as necessary, compiled and inserted to 2.6.31 Was modprobed just fine. 

lm-sensors now shows a temperature; the problem is... it's the hdd's temperature (confirmed thru booting to windows and checking with hwmon), not the cpu's. the cpu is supposed to be around 50C; the reported temp is same as hdd's average temp of 40C. 

output from sensors (ignore 27C at the buttom):

coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +42.0°C  (crit = +90.0°C)                  

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +41.0°C  (crit = +90.0°C)                  

acpitz-virtual-0
Adapter: Virtual device
temp1:       +26.8°C  (crit = +100.0°C)

Unless I did some very funky thing with how i compiled coretemp (to have it look precisely at hdd temp and report it twice, as if it were a hyperthreaded atom cpu), things aren't working out for me :) See my comment #23 for hardware info (hoping drop.io is ok here). Thanks.
Comment 26 Jonathan 2009-12-23 06:18:49 UTC
As far as I can tell, 2.6.32's coretemp module supports atom sensors by default.  I could be wrong.  My sensors also idle around 40C, though.  I've noticed that they jump up quickly in times of high CPU activity and drop right down again when the work is done (unless they're going for a while, in which case they take some time to cool down).

How did you check that those were the hard drive sensors via Windows?
Comment 27 vajorie 2009-12-23 18:44:59 UTC
> How did you check that those were the hard drive sensors via Windows?

I used the following in Windows: http://www.cpuid.com/hwmonitor.php

It shows 
1. acpi temp (the now-famous 27C, perhaps it gets it from weather.com)
2. Atom core temp (usually around 50C-57C, never went down to 40Cs, was 50-52C in idle)
3. Hdd temp (usually around 35-45C, never went up to 50Cs, was around 36C in idle)
4. battery info (charge stuff)

Basically, wondering whether hwmonitor shows battery voltages (I'm having problems with it), I noted my cpu temperature (I always look at it from time to time) in linux and booted promptly to windows. When I opened up hwmonitor, to my surprise, the temperature I noted (and monitored for a good 2 hours) in linux was shown as hdd temp. I worked on the lappy, trying to stress the cpu a little, then let it go idle for a long period, to make sure what I noted as cpu temp was hdd temp there... Cpu temp never went down under 48C or so (when idle for prolongued time period) according to hwmonitor under windows, while, right now, sensors report it to be 36C (steady). 

I looked up intel's specs for this cpu, and its maximum seems 90C. Accordingly, i would expect its fans to kick in after 50C or so. Right now, it's 36C (pretty much idle) and its fans are up and going. 

As a side note, there is definitely a corrolation between hdd temp and cpu temp. fans stop working when hdd temp goes below (and equal) 35C and kick up afterwards. Around 45C (hdd temp again), they go up a notch. This behavior seems in line with the specifications of my hdd (WD1600BEVT-22ZCT0): Western Digital says its operating temperature is up to 60C ( http://www.westerndigital.com/en/products/products.asp?driveid=513 ).

I'm clueless about hardware, but perhaps cpu's temperature affects hdd's? This is a small thing after all, and I expect the two (cpu & hdd) to be somewhat close to each other physically. 

Please let me know what else I can do to help :)
Comment 28 vajorie 2009-12-31 00:42:40 UTC
I now have 2.6.32 installed, coretemp still sees hdd temp as cpu temp as far as I can tell (~40C). should I open a new bug report? 

2.6.32-ARCH #1 SMP PREEMPT Sat Dec 26 08:26:17 UTC 2009 i686 Intel(R) Atom(TM) CPU N280 @ 1.66GHz GenuineIntel GNU/Linux

modinfo: 
filename:       /lib/modules/2.6.32-ARCH/kernel/drivers/hwmon/coretemp.ko
license:        GPL
description:    Intel Core temperature monitor
author:         Rudolf Marek <r.marek@assembler.cz>
depends:        
vermagic:       2.6.32-ARCH SMP preempt mod_unload 686
Comment 29 Jean Delvare 2010-01-04 21:52:22 UTC
Please, stop spamming this bug entry. Support for the Intel Atom is in 2.6.32 and it's working. How thermal management is done on your specific laptop is a totally different issue. And it most certainly doesn't deserve an entry in bugzilla. The lm-sensors mailing list is the right place to discuss this kind of thing.
Comment 30 Jonathan 2010-01-05 04:45:43 UTC
vajorie: If you think the wrong sensors' temperatures are being reported (or the temperature's being misreported, etc), I think one other more appropriate place to discuss it would be to open a new bug under Atom temperature support.  This bug here has the wrong topic and has the wrong people [still] assigned to it at this point for what you're trying to report.

If you do decide to open a new bug, could you CC me to it?  If you are indeed right about this, then my temperature's being misreported too, and I might be able to help debug.  Even if you're not, I'll be interested to see what's going on.