[ltp] Re: [T410s] Fan running constantly

Henrique de Moraes Holschuh linux-thinkpad@linux-thinkpad.org
Wed, 18 May 2011 21:17:48 -0300


On Wed, 18 May 2011, Daniel Näslund wrote:
> 2) There's a bug in the thinkpad-acpi kernel module causing the
> erroneus behaviour.

Thinkpad-acpi doesn't write to the fan controller until you tell it to for
the first time.  It has specific logic to track that, even across
suspend/hibernation: if userspace never ordered the driver to mess with
the fan since the module was loaded, it will NOT write to the fan control
registers for any reason.  The ACPI DSDT still might, and so could the
ACPI fan driver (if Lenovo implemented any hooks for that).

Set the fan_control=0 parameter, and thinkpad-acpi will refuse to ever
write to the fan control registers, no matter what (and THAT is the kernel
default, BTW...  but some annoying distros out there insist in messing
with this and load it with fan_control=1 by default).

> understanding of how the BIOS and acpi systems interact. AFAICT the
> fan is either controlled by the acpi system or it's not and then it's
> controlled directly by firmware in the BIOS. If that's a correct

It is controlled by the EC, and disturbed by the BIOS, by ACPI, or by
thinkpad-acpi.  But thinkpad-acpi won't disturb it if you don't tell it to
(or don't load thinkpad-acpi).  The kernel will not disturb it if you
remove the ACPI "fan" module.  The ACPI DSDT (and BIOS) might change fan
parameters due to thermal alarms, battery operation / AC operation /
battery-charge operation.

It is easy to test.  Blacklist both modules, reboot, and check whether
behaviour changes.  If it does, we have something we can work on.

Otherwise, well...

> thread, I tested to supply the boot argument "acpi=off" but the fan

It is a really bad idea to run a modern thinkpad with acpi=off.  YOU HAVE
BEEN WARNED.

> still ran on high speed. I'm not sure if that's a proof of the acpi
> system not controlling the fan... Just realized that I can probably

Well, you'd be running in MS-DOS mode, if it still works right (I doubt it
is tested much if at all), the EC and SMBIOS will be going out of their
way to avoid thermal damage, because the OS might not even be able to idle
the processors.  Do not do that.

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh