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