Comment 29 for bug 1290110

Revision history for this message
In , manuelkrause (manuelkrause-linux-kernel-bugs) wrote :

# also posted to linux-kernel && linux-pm
# my findings from tonight:

Hi, and thank you for your attention ^^

at the bottom of this email you'd get the actual values for the new 3.12.14 kernel for two different levels of usage and ambient temperature.
You'd read, in kernel 3.12.14 the /cdev?_trip_point enumeration has changed to the way of 3.13.? and also one /trip_point_?_temp did. But 3.12.14 is working as well as 3.12.13. (So my first eyecatcher didn't lead to useful things.)
I'm not capaple of finding or understanding the related code, but, please, let me present an idea of what MAY be going on:

In 3.12.13+, on my system, the effective cooling fan speed seems to be an accumulation, maybe bitwise, of cooling_device[2-6]/cur_state, that each get activated (=1) by a certain other temperature value or level; each of the cooling_device[2-6]/cur_state stays @1 as long as their ref. temp. does not undershoot. For my system this ref. temp. would most likely be triggered by temp2 == thermal_zone1/temp [CPUZ].

In 3.13.? there seems to get only one of cooling_device[2-6]/cur_state be set to 1, the others left and/or rewritten with 0. And the fan speed algorithm then accumulates only one 1 without seeing the [_LEVEL_] number of cooling_device[2-6]... or re-requesting the related trigger temperature.

I hope this leads you developers nearer to a conclusion on how to fix it,
best regards, Manuel Krause

_____________________________
3.12.14 -- 20140311 -- 19:07 -- changed, not broken -- normal use
=============================
/sys/class/thermal/* which
are links to -> ../../devices/virtual/thermal/*

dir |-
                 /type /cur_state /max_state Maybe
                                                      trigger
                                                      /PWM
...
cooling_device2 Fan 0 1 not yet
                                                      observed
cooling_device3 Fan 0 1 FDTZ==58°C
cooling_device4 Fan 1 1 FDTZ==45°C
cooling_device5 Fan 1 1 FDTZ==34°C
cooling_device6 Fan 1 1 FDTZ==25°C
...

dir |-
              /passive /temp |- /cdev?_ /trip_ /trip_
                                      trip_ point_ point_
                                      point ?_temp ?_type
...
thermal_zone1 n.a. 73000 |- (CPUZ)
                                ?=0 6 110000 critical
                                ?=1 5 107000 passive
                                ?=2 4 90000 active
                                ?=3 3 75000 active
                                ?=4 2 55000 active
                                ?=5 1 45000 active
                                ?=6 1 30000 active
...
thermal_zone4 n.a. 45000 ?=0 n.a. 110000 critical (FDTZ)
...

# sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +46.0°C (crit = +256.0°C)
temp2: +73.0°C (crit = +110.0°C)
temp3: +57.0°C (crit = +105.0°C)
temp4: +26.3°C (crit = +110.0°C)
temp5: +45.0°C (crit = +110.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0: +68.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +66.0°C (high = +105.0°C, crit = +105.0°C)

_____________________________
3.12.14 -- 20140311 -- 21:09 -- changed, not broken -- idle state
=============================

dir |-
                 /type /cur_state /max_state Maybe
                                                      trigger
                                                      /PWM
...
cooling_device2 Fan 0 1 not yet
                                                      observed
cooling_device3 Fan 0 1 FDTZ==58°C
cooling_device4 Fan 0 1 FDTZ==45°C
cooling_device5 Fan 0 1 FDTZ==34°C
cooling_device6 Fan 1 1 FDTZ==25°C
...

dir |-
              /passive /temp
thermal_zone1 n.a. 46000 ... (CPUZ)
...
thermal_zone4 n.a. 25000 ... (FDTZ)
...

# sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +50.0°C (crit = +256.0°C)
temp2: +46.0°C (crit = +110.0°C)
temp3: +44.0°C (crit = +105.0°C)
temp4: +25.7°C (crit = +110.0°C)
temp5: +25.0°C (crit = +110.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0: +41.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +41.0°C (high = +105.0°C, crit = +105.0°C)
_____________________________