First: Thermal management is only available on ACPI systems.
Second: Thermal management is buggy on a lot of machines (mostly by BIOS, it's also possible that you hit a kernel bug, see Lists how to report a kernel bug to get it solved). It is also very buggy in powersaved, if something does not work, report it ;-)
Examine the directory(ies) in /proc/acpi/thermal_zone/*/
COOLING_MODE
variable
satisfies your needs (set it to active or passive in your
scheme_* configuration files, see below - Configuration Variables).
/proc/acpi/thermal_zone/*/trip_points
or use
powersave -T
.
Your system should at least support a passive, even better one or more
active trip points (if not, nag your vendor to export temperature limits
by BIOS, it is really easy, but a lot of vendors do not care much about
the ACPI spec...)
If your system supports trip points you can override the temperature limits
for your needs (described below in Configuration Variables).
watch -n2 powersave -T
cat /dev/zero > /dev/null
(high processor usage)
powersave -f
to speed and warm up your processor (powersave -A
to switch back
to dynamic mode).
additionally you could close the slot to the fan (carefully...)
The thermal zone(s) which temperature(s) is rapidly increasing, is(are) the
interesting one.
Adjust the trip points of this thermal_zone (use number from powersave -T
)
using the variables described in 2.6.
Relevant configuration variables are in
/etc/powersave/thermal
and the scheme configuration files
You may want to create e.g. a scheme cool/hot and activate it when
you need a cool/fast system using the kpowersave front-end or the
-x -e parameters of the powersave
binary.
ENABLE_THERMAL_MANAGEMENT="yes"
Relevant general configuration variables for each scheme: (/etc/powersave/scheme_*):
COOLING_POLICY="passive"
active
- The hardware is preferably cooled by the fan
passive
- The hardware is preferably cooled through
lowering the cpu frequency and throttling.
This is rarely supported by HW, See /proc/acpi/thermal_zone/*/cooling_mode
THERMAL_CRITICAL_0="95"
THERMAL_HOT_0="90"
THERMAL_PASSIVE_0="35"
THERMAL_ACTIVE_0_0="40"
THERMAL_ACTIVE_0_1="42"
Use these variables to override the temperature trip point settings exported
by the BIOS (in degrees Celsius, see /proc/acpi/thermal_zone/*/trip_points
)
The number at the end of each variable defines the thermal zone for which
the value should be active. Use the powersave -T
command to find
supported thermal zones and their default trip point settings.
You might want to use the setDefaultTrippoints.sh script to fill your scheme_* conf files with your BIOS settings to easily override them.
The machine is switching on fans when active trip point temperature limits are reached.
When reaching the passive trip point, the kernel will lower the CPU's frequency (if CPU frequency switching is supported by your CPU) and throttle the CPU down when the passive trip point is exceeded.
By default the passive trip point (tp) is far above the active tps. For a cool and quiet system you may want to change this similar to above example settings. However these values are very HW dependant and you therefore have to fiddle around a bit to find out the best settings for your machine.
Try to find out which thermal zone directly refers to the processor as described above. A low value for passive should avoid fan activity but may slow down your machine if it exceeds the trip point's limit. The throttling is done by the kernel itself, the maximum throttling variable is not used in case of the passive limit is reached. Increase the active trip points values (if supported) to additionally avoid fan activity.
If a trip point is not supported by your BIOS (e.g. hot) you cannot use it -> write an email to your vendor he should support all of them, even you have a workstation.