From: Martin Peres <martin.peres-GANU6spQydw@public.gmane.org>
To: nouveau <Nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>
Subject: [TESTING CALL] Fan management
Date: Mon, 29 Aug 2011 16:07:15 +0200 [thread overview]
Message-ID: <4E5B9D13.90605@free.fr> (raw)
[-- 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
next reply other threads:[~2011-08-29 14:07 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-29 14:07 Martin Peres [this message]
[not found] ` <4E5B9D13.90605-GANU6spQydw@public.gmane.org>
2011-08-31 11:48 ` [TESTING CALL] Fan management Mr Dash Four
[not found] ` <4E5E1FA7.2010705-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2011-08-31 11:52 ` Martin Peres
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E5B9D13.90605@free.fr \
--to=martin.peres-ganu6spqydw@public.gmane.org \
--cc=Nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.