Bug 40312 - /sys/bus/platform/devices/coretemp content is changed from previous kernels
Summary: /sys/bus/platform/devices/coretemp content is changed from previous kernels
Status: RESOLVED INVALID
Alias: None
Product: Drivers
Classification: Unclassified
Component: Hardware Monitoring (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Jean Delvare
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-07-29 06:31 UTC by dasnoopy
Modified: 2011-08-16 12:56 UTC (History)
1 user (show)

See Also:
Kernel Version: linux 3.0.0 stable
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description dasnoopy 2011-07-29 06:31:34 UTC
After upgrading my linux box to kernel 3.0 I noticed a different management of coretemp module while till kernel 2.6.39.x (and all previous) , everything was ok

Try to explain better

This is my CPU 

vendor_id	: GenuineIntel
cpu family	: 6
model		: 23
model name	: Intel(R) Core(TM)2 Quad CPU    Q9400  @ 2.66GHz
stepping	: 10


- coretemp.ko module is loaded correctly

- lm-sensor ver 3.3.1 works well  report correct info as usual 
   coretemp-isa-0000
   Adapter: ISA adapter
   Core 0:       +42.0°C  (high = +72.0°C, crit = +100.0°C)
   Core 1:       +42.0°C  (high = +72.0°C, crit = +100.0°C)
   Core 2:       +43.0°C  (high = +72.0°C, crit = +100.0°C)
   Core 3:       +46.0°C  (high = +72.0°C, crit = +100.0°C)

but some other apps like conky 1.8.1 reports this :
Conky: can't open '/sys/bus/platform/devices/coretemp.0/temp1_input': No such file or directory

after a little investigation I saw some changes in the content of /sys/bus/platform/devices/coretemp* 

this is the output with a 2.6.39.x kernel 

total 0
   15 drwxr-xr-x 2 root root 0 Jul 28  2011 ./
   13 drwxr-xr-x 4 root root 0 Jul 28  2011 ../
14412 lrwxrwxrwx 1 root root 0 Jul 28 19:53 coretemp.0 -> ../../../devices/platform/coretemp.0
14431 lrwxrwxrwx 1 root root 0 Jul 28 19:53 coretemp.1 -> ../../../devices/platform/coretemp.1
14450 lrwxrwxrwx 1 root root 0 Jul 28 19:53 coretemp.2 -> ../../../devices/platform/coretemp.2
14469 lrwxrwxrwx 1 root root 0 Jul 28 19:53 coretemp.3 -> ../../../devices/platform/coretemp.3

in each dir I had the variables for any single core starting from 1 to 4
e.g. for coretemp.0 the content is:

... temp1_crit
... temp1_crit_alarm
... temp1_input
... temp1_label
... temp1_max


while on linux 3.0 i have only:

14431 lrwxrwxrwx 1 root root 0 Jul 29 07:53 /sys/bus/platform/devices/coretemp.0 -> ../../../devices/platform/coretemp.0/

and the content of this dir is this :
14438 drwxr-xr-x  3 root root    0 Jul 29 07:53 hwmon/
14430 -r--r--r--  1 root root 4.0K Jul 29 07:54 modalias
14437 -r--r--r--  1 root root 4.0K Jul 29 07:54 name
14432 lrwxrwxrwx  1 root root    0 Jul 29 07:53 subsystem -> ../../../bus/platform/
14449 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp2_crit
14446 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp2_crit_alarm
14448 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp2_input
14445 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp2_label
14447 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp2_max
14454 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp3_crit
14451 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp3_crit_alarm
14453 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp3_input
14450 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp3_label
14452 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp3_max
14459 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp4_crit
14456 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp4_crit_alarm
14458 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp4_input
14455 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp4_label
14457 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp4_max
14898 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp5_crit
14895 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp5_crit_alarm
14897 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp5_input
14460 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp5_label
14896 -r--r--r--  1 root root 4.0K Jul 29 07:54 temp5_max
14429 -rw-r--r--  1 root root 4.0K Jul 29 07:53 uevent

as you can see all variables are in the same dir and the core count start from 2 to 5 instead of 1 to 4 as should be (I guess)

Does anybody have an idea about this change?


thanks in advance
Andrea
Comment 1 dasnoopy 2011-08-04 06:26:19 UTC
Regarding all temps in one dir :  it's a change implemented with Kernel 3.0 


commit 199e0de7f5df31a4fc485d4aaaf8a07718252ace
Author: Durgadoss R <durgadoss.r@intel.com>
Date:   Fri May 20 01:29:35 2011 +0530

    hwmon: (coretemp) Merge pkgtemp with coretemp
    
    This patch merges the pkgtemp with coretemp driver.
    The sysfs interfaces for all cores in the same pkg
    are shown under one directory, in hwmon. It also
    supports CONFIG_HOTPLUG_CPU. So, the sysfs interfaces
    are created when each core comes online and are
    removed when it goes offline.


sorry if I didn't check before in the changelog

Now I would like to now if the core count is correct or not 

Andrea
Comment 2 Guenter Roeck 2011-08-12 00:31:14 UTC
Data is correct and as expected. temp1 is the package temperature which is not supported for your CPU.

Applications should not depend on sequential sensor attribute numbering.

Guenter
Comment 3 Jean Delvare 2011-08-16 12:56:43 UTC
This is a bug in conky or any other application affected by this change, so please report it there. The coretemp driver still implements a compliant hwmon interface which will make any reasonably recent version of libsensors happy.

Not only monitoring applications shouldn't assume fixed or sequential numbering of sensor inputs, as Guenter correctly wrote in comment #2, but they shouldn't assume _anything_ at all, and they shouldn't have to: proper monitoring applications should simply build on top of libsensors.

Note You need to log in before you can comment on or make changes to this bug.