control: tag -1 - moreinfo
control: tag -1 + upstream
control: reassign -1 src:linux
control: retitle -1 linux: system freezes when dell-smm-hwmon reads fan speed

Hi,

On 2017-07-26 10:34, Carmelo C wrote:
> Hi Aurelien,
> 
> I removed the code line "radeon.hw_i2c=1" but the freeze persists. Then I
> ran "strace -o strace_sensors_output -tt sensors", attached the output...

Indeed, the strace shows that the freeze is not related to the radeon
module, but rather to the dell-smm-hwmon module. You can try to unload
it, the issue should then disappear.

[ snip ]

> 10:18:08.029849 write(1, "dell_smm-virtual-0\n", 19) = 19
> 10:18:08.029908 write(1, "Adapter: Virtual device\n", 24) = 24

[ snip ]

> 10:18:08.049666 open("/sys/class/hwmon/hwmon2/fan1_label", O_RDONLY) = 3
> 10:18:08.049718 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
> 10:18:08.049759 read(3, "Processor Fan\n", 4096) = 14
> 10:18:08.049801 read(3, "", 4096)       = 0
> 10:18:08.049838 close(3)                = 0
> 10:18:08.049882 open("/sys/class/hwmon/hwmon2/fan1_input", O_RDONLY) = 3
> 10:18:08.049937 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
> 10:18:08.049978 read(3, "2844\n", 4096) = 5
> 10:18:09.956833 close(3)                = 0
> 10:18:09.956891 write(1, "Processor Fan: 2844 RPM\n", 24) = 24

Here you can see that reading the fan speed almost take 2 seconds.

> 10:18:09.956950 open("/sys/class/hwmon/hwmon2/fan2_label", O_RDONLY) = 3
> 10:18:09.957009 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
> 10:18:09.957052 read(3, 0xbfdec67c, 4096) = -1 EINVAL (Invalid argument)
> 10:18:09.957093 close(3)                = 0
> 10:18:09.957138 open("/sys/class/hwmon/hwmon2/fan2_input", O_RDONLY) = 3
> 10:18:09.957191 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
> 10:18:09.957250 read(3, "2844\n", 4096) = 5
> 10:18:11.860890 close(3)                = 0
> 10:18:11.860939 write(1, "fan2:          2844 RPM\n", 24) = 24

Same here.

> 10:18:11.860990 open("/sys/class/hwmon/hwmon2/fan3_label", O_RDONLY) = 3
> 10:18:11.861046 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
> 10:18:11.861088 read(3, 0xbfdec67c, 4096) = -1 EINVAL (Invalid argument)
> 10:18:11.861128 close(3)                = 0
> 10:18:11.861172 open("/sys/class/hwmon/hwmon2/fan3_input", O_RDONLY) = 3
> 10:18:11.861237 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
> 10:18:11.861278 read(3, "2840\n", 4096) = 5
> 10:18:13.779559 close(3)                = 0
> 10:18:13.779666 write(1, "fan3:          2840 RPM\n", 24) = 24

Same here.

> 10:18:13.779738 open("/sys/class/hwmon/hwmon2/temp1_label", O_RDONLY) = 3
> 10:18:13.779947 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
> 10:18:13.780021 read(3, "CPU\n", 4096)  = 4
> 10:18:13.789029 read(3, "", 4096)       = 0
> 10:18:13.789087 close(3)                = 0
> 10:18:13.789148 open("/sys/class/hwmon/hwmon2/temp1_input", O_RDONLY) = 3
> 10:18:13.789228 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
> 10:18:13.789280 read(3, "37000\n", 4096) = 6
> 10:18:13.799076 close(3)                = 0

While reading a temperature is done in less than 1 millisecond.


The problem you observe is similar to the following one:
  
  https://bugzilla.kernel.org/show_bug.cgi?id=112021

As it the root of the problem is a BIOS issue, I would first suggest to
upgrade it. If it doesn't work the next step is probably to use the 
blacklist implemented in the dell-smm-hwmon module to disable the fans
when running on a Dell system similar to yours.

In anycase this is definitely a kernel related issue, so I am
reassigning the bug.

Regards,
Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurel...@aurel32.net                 http://www.aurel32.net

Reply via email to