how to set gpu fan speed

Hi,

I have new lenovo P52 which suffers from serious overheating. The rule of thumb for this laptop is, that fan start very late and when eventually, then inadequately. ‘fancontrol’ or manually setting max spin speed fixes the issue for CPU fan, but GPU fan isn’t detected by fancontrol and probably is controlled by nvidia drivers. The fan speed/response to load for GPU is even worse then for CPU, and I’d really like to fix 75°C and higher temperatures.

I’m total GPU configuration newbie, I was able to instal nvidia drivers, but everything after that does not work for me. I read your nvidia documentation I was able to found, but I cannot see a way how to control fans. Enable coolbits does nothing, calling nvidia-settings -q fans prints nothing, and CLI of this is totally incomprehensible for me. How is this used? Or how to anyhow raise sensitivity to templerature or manually control fans? Since even without any intensive work my left leg is 36°C and right leg 45°C, which is not especially comfy :)

Thanks.

Notebooks are kind of special, so while you have a second fan, this is not necessarily being controlled by the nvidia driver. Maybe this is also controlled by the system. Please post the output of
sensors
Also check your bios settings, maybe there’s some setting for fan control.

Thanks for trying to help me!

I checked bios before and did not find anything there. GPU fan is starting, I can hear it, but it’s not spinning sufficiently; when idling nvidia-settings reports ~40°C, but whole right part of laptop is quite hotter then left, which has reportedly higher temperature. When actually working, the right side is really hot, but fan isn’t spinning even at half speed. Ie. the heat is not coming from GPU, but most probably passing from left side of laptop. But there might be(probably is) something wrong with laptop, since sometimes the temp is over 90°C even with fan spinning on max, and logs are full with info about throttling cpu

sensors output:

iwlwifi-virtual-0
Adapter: Virtual device
temp1:        +37.0°C  

thinkpad-isa-0000
Adapter: ISA adapter
fan1:        2497 RPM

acpitz-virtual-0
Adapter: Virtual device
temp1:        +43.0°C  (crit = +128.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +44.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +41.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +43.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +41.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +42.0°C  (high = +100.0°C, crit = +100.0°C)
Core 4:        +42.0°C  (high = +100.0°C, crit = +100.0°C)
Core 5:        +42.0°C  (high = +100.0°C, crit = +100.0°C)

pch_cannonlake-virtual-0
Adapter: Virtual device
temp1:        +43.0°C

Some investigations done, both fans are actually contolled by (bios)system. For whatever reasons, there’s only one fan interface and a switch between both fans controlled by writing either 0 or 1 to a config register. This is actually implemented in the kernel but has to be whitelisted for each notebook model and can’t be manually enabled by e.g. a module parameter:
https://patchwork.kernel.org/patch/31041/
https://lkml.org/lkml/2018/4/2/392
What makes things worse, it looks like Lenovo changed both fans to be independently contollable starting with the P50/51 which isn’t implemented yet if I understood this correctly.
So you can only go to the thinkpad-acpi mailing-list and ask for support.

Thanks for investigation and helping me.
I’m just a linux BFU, so I don’t know how to play with kernel patches and probably do not understand sufficiently … So just to be sure: can I currently do something on my side? I understood it, that all I can do is to go to thinkpad-acpi and beg there for help. Right?

There are actually two or even three groups you can and should revert to

  1. the thinkpad-acpi devs
  2. the kernel devs of your distro
  3. update existing bug reports about second fan of P51/52 with info from my post

Maybe somewhere you will find a person able and willing to patch the kernel, this always needs luck. Plan B: learn how to compile and run your own kernel, then learn C;)
Basically, three things are necessary:

  • a patch whitelisting P51/P52 notebooks or at least add a module option to enable it
  • a patch adding write access to the second fan on P50/51/52
  • a patch for 'fancontrol' to control two fans

Until then, people will keep running in circles poking at the nvidia driver, wondering why it doesn’t work.

Thanks! I’ll try to make laptop work on newest official kernels (yes, I found out that I’m not on newest kernel, and that one does not work propertly on my laptop for some reason) and if it does not work with it, I’ll try mailing lists you recommended.

Thanks for your help and excellent attitude!