In this patch we add a chapter in the thermal docbook to describe the existing governors. The chapter contains one section per governor.
Each governor description includes the respective code documentation. Each governor section contains a description of the governor logic. Signed-off-by: Eduardo Valentin <[email protected]> --- Documentation/DocBook/thermal.tmpl | 67 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/Documentation/DocBook/thermal.tmpl b/Documentation/DocBook/thermal.tmpl index d6ebbea..cf1a198 100644 --- a/Documentation/DocBook/thermal.tmpl +++ b/Documentation/DocBook/thermal.tmpl @@ -212,6 +212,73 @@ </glossary> </sect1> </chapter> + + <chapter id="governors"> + <title>Thermal Governors</title> + <para> + </para> + + <sect1 id="step_wise"> + <title>step_wise Thermal Governor</title> + <para>Step Wise uses the trend of the thermal zone to + throttle. If the thermal zone is 'heating up' this + throttles all the cooling devices associated with the + zone and its particular trip point, by one step. If the + zone is 'cooling down' it brings back the performance + of the devices by one step. + </para> +!Idrivers/thermal/step_wise.c +!Pdrivers/thermal/step_wise.c Algorithm + </sect1> + <sect1 id="fair_share"> + <title>fair_share Thermal Governor</title> + <para>Fair Share Governor uses three parameters to + calculate the new throttle state of the cooling devices + associated with the given zone. Parameters used for + Throttling: + </para> + <itemizedlist mark='opencircle'> + <listitem>P1. max_state: Maximum throttle state + exposed by the cooling device.</listitem> + <listitem>P2. weight[i]/100:</listitem> + <listitem>How 'effective' the 'i'th device is, + in cooling the given zone.</listitem> + <listitem>P3. + cur_trip_level/max_no_of_trips:</listitem> + </itemizedlist> + <para>This describes the extent to which the devices + should be throttled. We do not want to throttle too + much when we trip a lower temperature, whereas the + throttling is at full swing if we trip critical levels. + Heavily assumes the trip points are in ascending order + new_state of cooling device = P3 * P2 * P1. + </para> +!Idrivers/thermal/fair_share.c + </sect1> + <sect1 id="bang_bang"> + <title>bang_bang Thermal Governor</title> + <para>The Bang Bang Governor has a two point regulation + logic, deliver cooling state depending on the previous + state shown in this diagram: </para> + <para>If the fan is not running and temperature exceeds + trip_temp, the fan gets turned on. In case the fan is + running, temperature must fall below (trip_temp - hyst) + so that the fan gets turned off again. + </para> +!Idrivers/thermal/gov_bang_bang.c + </sect1> + <sect1 id="user_space"> + <title>user_space Thermal Governor</title> + <para> The User Space governor is outside the Kernel. + The Thermal Framework hands off the entire control to + userland if the User Space governor is assigned to a + thermal zone. A KOBJ_CHANGE UEvent notification is sent + to userland whenever a governor needs to take an + action. + </para> +!Idrivers/thermal/user_space.c + </sect1> + </chapter> <chapter id="api"> <title>Thermal Device Driver Writer API reference</title> <para> This Chapter contains an API reference for Thermal driver writers. -- 2.1.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

