All of lore.kernel.org
 help / color / mirror / Atom feed
* [TESTING CALL] Fan management
@ 2011-08-29 14:07 Martin Peres
       [not found] ` <4E5B9D13.90605-GANU6spQydw@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Martin Peres @ 2011-08-29 14:07 UTC (permalink / raw)
  To: nouveau


[-- Attachment #1.1: Type: text/plain, Size: 3999 bytes --]

Hi Nouveau users,

Just saw the bitching on Phoronix about lack of fan management in 
nouveau (no offence Michael, it was justified ;) ).
Since it has been working flawlessly for more than a week on my desktop, 
I decided to let you guys know about it and ask for testing.

Here is the code: 
http://gitorious.org/linux-nouveau-pm/linux-nouveau-pm/commits/thermal
Please read the following paragraphs before pulling this branch and fry 
your GPU.

The hardware and current limitations
---------------------------------------------------

This branch introduces code to drive the most common fan type (and the 
most problematic one, I guess/hope). We call them PWM fan.
The other types are TOGGLE (can only be ON or OFF) and I2C (driven using 
an I2C chip).

The TOGGLE fans aren't supported because I think I lack the hw (to be 
confirmed).

The PWM fans are the most common ones. It supports a full range of speed 
(from 0% to 100%).

The I2C-accessible fans are usually limited to high-end cards. At the 
moment, the only thing we can do for them is to launch their hwmon driver.
This is due to a limitation in hwmon that doesn't let kernel drivers 
accessing the i2c chips' methods. We are working with the hwmon team and 
provided
a patch to support that: 
http://www.spinics.net/lists/lm-sensors/msg32906.html
If you have such a fan, you can manage it from the userspace.

The implemented fan management support
-----------------------------------------------------------

Current fan management should only work on what we call PWM fans.

This work should be usable up to (not including) nva3 chipset generation.
This is because nva3+ cards all have hw to drive the speed of the fan 
(pwm or i2c).

Reading the fan speed (power): cat /sys/class/drm/cardX/device/pwm0

Reading the fan speed (RPM): cat /sys/class/drm/cardX/device/fan0_input

Setting the fan management method: echo X > 
/sys/class/drm/cardX/device/pwm0_enable
- X = 0: Fan management disabled, fan power set to 100%
- X = 1: Manual fan management (you can set the speed by writing 
[0->100] to /sys/class/drm/cardX/device/pwm0)
- X = 2: The default automatic fan management (equivalent to X = 3 for 
the moment)
- X = 3: Linear fan management. The fan speed is linearly correlated to 
the temperature.
- X = 4: Target temperature management. The fan is driven to keep the 
GPU to a certain temperature

The thermal zone implementation
------------------------------------------------

Since I believe thermal zones are great but massively under-used. I used 
thermal zones to define some trip points.

Here are some noteworthy trip points:
- Default mode: Listen to the user commands
- Fan boost: Whenever the GPU reaches this temperature, the fan will 
blow at 100%
- Downclocking: Whenever the GPU reaches this temperature, your GPU will 
be downclocked to the lowest perflvl
- Critical: Whenever the GPU reaches this temperature, your computer 
will shut down to prevent damages.

BIG FAT WARNING
-----------------------------

For those willing to try this, please watch your GPU temperature closely 
at any time using "$ sensors" and your fingers.
If you think sensors doesn't report the right temperature, please send 
us a mail with your vbios and show up on IRC (ask mupuf).

Check this before having fun with fan management, it is very important!

Installation
------------------

cd my_package_directory
git clone git://gitorious.org/linux-nouveau-pm/linux-nouveau-pm.git
git branch --track thermal origin/thermal

Then it is just a matter of compiling and testing your kernel. Please 
follow your distribution's guide.

Report
------------

Please report your story on our IRC channel. Please also send your 
kernel logs along with your vbios to martin.peres <at> free(dot)fr.

Conclusion
------------

Hope you like it. Keep us informed of how well it works ;)

Martin (AKA mupuf)

PS: Another testing call about power management should also follow but 
there is something I want to implement before people try it.

[-- Attachment #1.2: Type: text/html, Size: 5264 bytes --]

[-- Attachment #2: Type: text/plain, Size: 181 bytes --]

_______________________________________________
Nouveau mailing list
Nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [TESTING CALL] Fan management
       [not found] ` <4E5B9D13.90605-GANU6spQydw@public.gmane.org>
@ 2011-08-31 11:48   ` Mr Dash Four
       [not found]     ` <4E5E1FA7.2010705-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Mr Dash Four @ 2011-08-31 11:48 UTC (permalink / raw)
  To: Martin Peres; +Cc: nouveau


> The implemented fan management support
> -----------------------------------------------------------
>
> Current fan management should only work on what we call PWM fans.
>
> This work should be usable up to (not including) nva3 chipset generation.
> This is because nva3+ cards all have hw to drive the speed of the fan 
> (pwm or i2c).
>
> Reading the fan speed (power): cat /sys/class/drm/cardX/device/pwm0
>
> Reading the fan speed (RPM): cat /sys/class/drm/cardX/device/fan0_input
>
> Setting the fan management method: echo X > 
> /sys/class/drm/cardX/device/pwm0_enable
> - X = 0: Fan management disabled, fan power set to 100%
> - X = 1: Manual fan management (you can set the speed by writing 
> [0->100] to /sys/class/drm/cardX/device/pwm0)
> - X = 2: The default automatic fan management (equivalent to X = 3 for 
> the moment)
> - X = 3: Linear fan management. The fan speed is linearly correlated 
> to the temperature.
> - X = 4: Target temperature management. The fan is driven to keep the 
> GPU to a certain temperature
I have 7800gs (NV49) card and tried to use the new driver yesterday 
after pulling the latest source, compiling and installing it. 
Unfortunately, pwm0_enable is not showing up, so I am unable to use the 
fan management at all. Previous attempts to write values to either 
/sys/class/drm/cardX/device/pwm0 or the port itself (using nvpoke) also 
failed - even though the value changes the fan speed stays the same. I 
was hoping that the latest additions will solve these problems and 
reduce the noise coming out of the fan (blasting at 100%), but that 
seems to be way off, at least for now.

What could be the problem? Could it be that my card is using i2c 
instead? Any ideas?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [TESTING CALL] Fan management
       [not found]     ` <4E5E1FA7.2010705-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
@ 2011-08-31 11:52       ` Martin Peres
  0 siblings, 0 replies; 3+ messages in thread
From: Martin Peres @ 2011-08-31 11:52 UTC (permalink / raw)
  To: Mr Dash Four; +Cc: nouveau

Le 31/08/2011 13:48, Mr Dash Four a écrit :
>
>> The implemented fan management support
>> -----------------------------------------------------------
>>
>> Current fan management should only work on what we call PWM fans.
>>
>> This work should be usable up to (not including) nva3 chipset 
>> generation.
>> This is because nva3+ cards all have hw to drive the speed of the fan 
>> (pwm or i2c).
>>
>> Reading the fan speed (power): cat /sys/class/drm/cardX/device/pwm0
>>
>> Reading the fan speed (RPM): cat /sys/class/drm/cardX/device/fan0_input
>>
>> Setting the fan management method: echo X > 
>> /sys/class/drm/cardX/device/pwm0_enable
>> - X = 0: Fan management disabled, fan power set to 100%
>> - X = 1: Manual fan management (you can set the speed by writing 
>> [0->100] to /sys/class/drm/cardX/device/pwm0)
>> - X = 2: The default automatic fan management (equivalent to X = 3 
>> for the moment)
>> - X = 3: Linear fan management. The fan speed is linearly correlated 
>> to the temperature.
>> - X = 4: Target temperature management. The fan is driven to keep the 
>> GPU to a certain temperature
> I have 7800gs (NV49) card and tried to use the new driver yesterday 
> after pulling the latest source, compiling and installing it. 
> Unfortunately, pwm0_enable is not showing up, so I am unable to use 
> the fan management at all. Previous attempts to write values to either 
> /sys/class/drm/cardX/device/pwm0 or the port itself (using nvpoke) 
> also failed - even though the value changes the fan speed stays the 
> same. I was hoping that the latest additions will solve these problems 
> and reduce the noise coming out of the fan (blasting at 100%), but 
> that seems to be way off, at least for now.
>
> What could be the problem? Could it be that my card is using i2c 
> instead? Any ideas?
Could you provide your kernel logs and vbios please? I'll have a look at it.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-08-31 11:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-29 14:07 [TESTING CALL] Fan management Martin Peres
     [not found] ` <4E5B9D13.90605-GANU6spQydw@public.gmane.org>
2011-08-31 11:48   ` Mr Dash Four
     [not found]     ` <4E5E1FA7.2010705-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2011-08-31 11:52       ` Martin Peres

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.