Provided by: cpufreqd_2.4.2-2ubuntu3_amd64 bug

NAME

       cpufreqd.conf - configuration file for cpufreqd(1)

DESCRIPTION

       cpufreqd.conf is a simple text file containing rules to be used by cpufreqd(1).

       cpufreqd.conf  is  divided into sections enclosed in tags (eg.: [General][/General]).  You
       need at least one [General] section and one or more [Profile] and [Rule]  sections.   Each
       [Rule]  depends  on previously defined [Profile] subsections.  Some plugins also require a
       proper configuration section.

       Some notes to better understand how to write appropriate rules:

              - the score of a rule is made up of  the  percentage  of  entries  that  match  the
              current  system  state as reported by plugins + the number of matching entries.  In
              this way even a single-entry rule can  reach  100%  but  more  accurate  rules  are
              preferred.

              -  in  case of 2 or more rules having the same score the first one (as found in the
              configuration file) or the one already applied if applicable is kept and set.

              - each directive is handled by a single plugin that will  determine  if  the  state
              described matches the current system state.

              - if no rule matches the current system status, no action is performed.

       What to keep in mind when writing rules:

              -  the  -V  switch  is  (hopefully)  your  friend, test your configuration slightly
              increasing cpufreqd verbosity and look what happens (-V6 will report rules' scores,
              -V7 will report which entry matched and which not).

              -  if  you  want a rule to be preferred over another just describe the system state
              more accurately.

       A good approach to write cpufreqd rules is to first describe the basic parameters you want
       for  a  general  usage  (e.g.: define at least an "AC-on" rule and an "AC-off" rule), then
       proceed and describe all the special cases by describing the system state more  accurately
       (e.g.: "AC-off but running mplayer" or "AC-on but temperature too hot").

       Note  that no white space is allowed between name and value pairs.  Characters after a '#'
       are considered comments and ignored.

SECTIONS

       Acceptable configuration tokens and values include:

   [General]
       poll_interval
              A float larger than 0.15, measures the interval between system  status  reading  in
              seconds.  Note: the lower bound has been set in order to try to avoid trashing your
              system if using a too low value. (default: 1.0)

       enable_plugins
              A list of plugins separated by comma. As of cpufreqd 2.1.0 this option is  useless,
              cpufreqd  will  load  all available plugins and remove those remaining unused after
              the configuration file is read.

       pidfile
              Specifies the  file  to  write  as  its  process  identification  file.   (default:
              /var/run/cpufreqd.pid)

       enable_remote
              Make  cpufreqd open a local UNIX socket and listen for command to be executed.  See
              cpufreqd-set(1) and cpufreqd-set(1) for two very simple clients.

       remote_group
              Make the socket readable and writeable to the  specified  group.  Useful  to  allow
              simple users to tweak cpufreqd with cpufreqd-set and cpufreqd-get.

       double_check
              Make  cpufreqd  check  if  the  requested  policy has been correctly applied by re-
              reading the corresponding kernel attributes.

       verbosity
              Verbosity level from 0 (less verbose) to 7 (most verbose), the default  value  only
              prints warning/error/critical messages. (default: 4)

   [Profile]
       name   An arbitrary and unique name for your profile. [REQUIRED]

       minfreq
              An  integer  value representing the minimum frequency to set in /proc/cpufreq. This
              value can be both a percentage of the  CPU  full  capacity  or  frequency  in  kHz.
              [REQUIRED]

       maxfreq
              An  integer value representing the maximum frequency to set. This value can be both
              a percentage of the CPU full capacity or frequency in kHz. [REQUIRED]

       policy Can   be   any    of    the    available    governor's    name    as    shown    in
              /sys/devices/.../cpufreq/scaling_available_governors,   this   means  that  if  you
              compiled governors as modules in your kernel, you need to load them before  running
              cpufreqd. [REQUIRED]

       other plugin entries
              Other Profile directives are available according to the enabled plugins.

   [Rule]
       name   An arbitrary and unique name for your rule. [REQUIRED]

       profile
              A  character  string that must match a [Profile] section name property.  A Rule can
              also associate profiles to single cpus providing a  list  of  the  format  CPU%d:%s
              separated  by  semicolons  (";"),  e.g.:  profile=CPU0:profile0;CPU1:profile1.  The
              keyword "ALL" can be used to indicate that all cpus must have the profile  applied.
              The "ALL" keyword has a lower priority so you can mix up CPU%d and ALL meaning that
              if no specific profile is supplied, the "ALL" one will be used. [REQUIRED]

       other plugin entries
              Other Rule directives are available according to the enabled plugins.

PLUGINS

       Plugins extend cpufreqd in order to be able to cope with the most exotic system paramters.
       Currently  available  plugins are listed below along with the configration directives they
       provide and their configuration section description if available.

   acpi plugin
       This plugin includes all the  acpi  monitoring  functionalities  previously  available  as
       separate plugins. It allows monitoring battery, temperature, ac and interacting with acpid
       to immediately react on ACPI events.

       Section [acpi]
              acpid_socket The path to Acpid open socket (default:  /var/run/acpid.socket).  When
              available  cpufreqd  will wake up immediately upon event arrival and battery and ac
              status updates are forced.

              battery_update_interval
                     The number of seconds that have to elapse before polling the battery  again.
                     In  such  period the battery value will be estimated based on reported power
                     consumption (default: 30).

       battery_interval
              The rule will have a higher score if  battery  percentage  is  between  the  values
              provided.  Can  be  of  the  form  %d-%d  or  simply  %d  for  a fixed value (e.g.:
              battery_interval=10-100) or %s:%d-%d or  %s:%d  where  the  string  represents  the
              battery name that must match (look at 'ls /proc/acpi/battery' for available names).

       ac     Can  be  on  or off.  The rule will have a higher score if the A/C adapter is on or
              off as defined in this setting.

       acpi_temperature
              The rule will have a higher score if the temperature percentage corresponds to  the
              provided  values.  Can  be  of the form %d-%d or simply %d for a fixed value (e.g.:
              acpi_temperature=10-100) or %s:%d-%d or  %s:%d  where  the  string  represents  the
              thermal  zone  name  that  must  match  (look  at  'ls /proc/acpi/thermal_zone' for
              available names).

   apm plugin
       Monitors values reported by the APM subsystem. Available Rule entries:

       ac     Can be on or off.  The rule will have a higher score if the A/C adapter  is  on  or
              off as defined in this setting.

       battery_interval
              The  rule  will  have  a  higher  score if battery percentage is between the values
              provided. Must be of the form %d-%d (e.g.: battery_interval=10-100).

   pmu plugin
       Monitors values reported by the PMU subsystem. Available Rule entries:

       ac     Can be on or off.  The rule will have a higher score if the A/C adapter  is  on  or
              off as defined in this setting.

       battery_interval
              The  rule  will  have  a  higher  score if battery percentage is between the values
              provided. Must be of the form %d-%d (e.g.: battery_interval=10-100).

   tau plugin
       Support for the Thermal Assist Unit to read the CPU temperature from /proc/cpuinfo.

       tau_temperature
              The rule will have a  higher  score  if  the  temperature  is  between  the  values
              provided. Must be of the form %d-%d (e.g.: tau_temperature=30-60).

   cpu plugin
       Monitors the cpu usage. Available Rule entries:

       cpu_interval
              The  rule  will  have  a  higher score if cpu usage is between the values provided.
              Must be of the form %d-%d (e.g.: cpu_interval=10-100)  or  %d:%d-%d  to  monitor  a
              specific  cpu  in  SMP/SMT  systems (e.g.: cpu_interval=1:50-100). Moreover you can
              combine multiple cpus giving multiple intervals  on  the  same  line  separated  by
              semicolon  (';'),  if  any  of  them  matches  the full directive will match (e.g.:
              cpu_interval=0:50-100;1:0-60). Additionally you can use the strings "ALL" and "ANY"
              to   request   that   all   cpus   or   any   cpu   matches   respectively   (e.g.:
              cpu_interval=ANY:50-100).  It is possible to specify the scale to  calculate  niced
              processes    cpu   usage   with   the   form   %d-%d,%f   or   %d:%d-%d,%f   (e.g.:
              cpu_interval=1:70-100,1.5), default is 3, in  this  way  niced  processes  will  be
              considered  1/3  of  their  real  value.   Rules with overlapping cpu_intervals are
              allowed.

   exec plugin
       Executes command on Rule/Profile selection. Available Rule and Profile entries:

       exec_pre

       exec_post
              You can give commands that you want to be  executed  when  a  Rule  or  Profile  is
              applied.  As  the  names  suggest, exec_pre will be run before a Rule or Profile is
              applied, exec_post will be run after.

   programs plugin
       Monitors active processes. Available entries:

       programs
              The rule will have a higher score if one of the listed processes is running.   This
              is   a   comma  separated   list.    No   white   space  is allowed between values.
              cpufreqd will try to match each process name with the configured process  list.  If
              you need to match against program from a spe- cific location you have to supply the
              full path as search pattern.

   nforce2_atxp1 plugin
       Allows you to change Vcore of the CPU on the fly if you own a  NForce2  board  with  atxp1
       voltage regulator (and its module loaded). The use of this plugin will allow a new Profile
       directive and requires a configuration section.

       Section [nforce2_atxp1]
              vcore_path Defines the interface file created by atxp1 module which will be used to
              change Vcore.

              vcore_default  As NForce2 boards only initialize the atxp1 on power-on, you need to
              put back default Vcore before reboot. This value will be used to set Vcore on exit.

       vcore  Will set Vcore to this value (given  in  mV)  when  the  corresponding  Profile  is
              applied. Due to safety reasons range is limited from 1200 to 1850.

   nvclock plugin
       Allows  you  to  tweak  the core an memory clock for NVidia cards.  The use of this plugin
       will allow new Profile directives.  NOTE: you MUST use this  plugin  ONLY  with  supported
       cards.  See also the nvclock homepage (http://www.linuxhardware.org/nvclock).

       nv_core
              Sets  the  core  clock  in  MHz.  Must be of the form %d:%d where the first integer
              represents the card number, the second the desired frequency in MHz.

       nv_mem Sets the memory clock in MHz. Must be of the form %d:%d  where  the  first  integer
              represents the card number, the second the desired frequency in MHz.

   sensors plugin
       Allows  you  to  specify  lm-sensors features to watch, see `sensors -u' to find out which
       sensors are available on your system.  A configuration section is also available  to  tell
       cpufreqd  which  sensors.conf  file to use. If not specified it will take the first on the
       default locations.

       Section [sensors_plugin]
              sensors_conf Define this directive to the sensors.conf file you  want  cpufreqd  to
              use to load the sensors library.

       sensor The  rule  will  have  a  higher  score if the given sensor feature reports a value
              between the two defined. Must be of the form %s:%f-%f where the  string  represents
              the  feature  name or label and the two decimal numbers the interval into which the
              directive is valid (e.g.: sensor=temp1:0-50).

   governor_parameters plugin
       Allows you to specify parameters for governors in [Profile] sections.  Currently only  the
       `ondemand'  and  `conservative'  governors  support  parameters.   The  description of the
       parameters  below  is  basically  a  summary  of  the  information  found  in   the   file
       `governors.txt' in the documentation of kernel versions 2.6.16 or later.

       sampling_rate
              How  often  the  governor  checks  the  CPU  usage.   Specify  in  micro-seconds or
              percentage of mimimum and maximum available values. Supported suffixes: `%'  for  a
              percentage,  `s'  for  a value in seconds, `m' for a value in milli-seconds, or `u'
              for a value in micro-seconds (the default),

       up_threshold
              What the average CPU usage needs be at least to make the governor decide to  switch
              to  a  higher  frequency.   Though  the  value  is interpreted as percentage by the
              governor, you should not append a `%' in cpufreqd.conf for this parameter.

       down_threshold (`conservative' governor only)
              What the average CPU usage needs be at most to make the governor decide  to  switch
              to a lower frequency.  This is the opposite of up_threshold (see above).

       sampling_down_factor
              How  quickly  the  frequency will be decreased in respect to how quickly it will be
              increased.  E.g. when set to 5, the frequency will go down 5 times `less easy' than
              it will go up.

       ignore_nice, ignore_nice_load
              Whether  `nice'  processes should be considered as CPU usage by the governor.  This
              is a boolean value (e.g. value is either 0 or 1).  When set to 1  `nice'  processes
              will  not be counted as CPU usage by the governor.  Note: `ignore_nice' was renamed
              to `ignore_nice_load' in  kernel  version  2.6.16.   Both  names  are  accepted  in
              cpufreqd.conf, regardless the version of the running kernel.

       freq_step (`conservative' governor only)
              How  much  the  frequency  should  be  changed  (up or down) each time the governor
              decides the frequency should go up or down.  The value is  the  percentage  of  the
              maximum  available  frequency  you  want the frequency to increase or decrease each
              time.  The actual frequency your CPU runs at will  only  change  when  the  desired
              frequency reaches the next available frequency.  Though the value is interpreted as
              percentage by the governor, you should not append a `%' in cpufreqd.conf  for  this
              parameter.

EXAMPLE

       # cpufreqd.conf sample
       # this is a comment
       [General]
       pidfile=/var/run/cpufreqd.pid
       poll_interval=2
       verbosity=5 #(if you want a minimal logging)
       [/General]

       [Profile]
       name=hi
       minfreq=100%
       maxfreq=100%
       policy=performance
       [/Profile]

       [Profile]
       name=medium
       minfreq=66%
       maxfreq=66%
       policy=performance
       [/Profile]

       [Profile]
       name=lo
       minfreq=33%
       maxfreq=33%
       policy=performance
       [/Profile]

       [Profile]
       name=ondemand_hi
       minfreq=0%
       maxfreq=100%
       policy=ondemand
       [/Profile]

       [Profile]
       name=ondemand_lo
       minfreq=0%
       maxfreq=66%
       policy=ondemand
       ignore_nice=1
       sampling_rate=80%
       [/Profile]

       # full power when AC
       # max score 101%
       [Rule]
       name=AC_on
       ac=on
       profile=hi
       [/Rule]

       # conservative mode when not AC
       # max score 101%
       [Rule]
       name=AC_off
       ac=off
       profile=ondemand_hi
       [/Rule]

       # low battery
       # max score 102%
       [Rule]
       name=lo_battery
       ac=off
       battery_interval=0-40
       profile=ondemand_lo
       [/Rule]

       # need big power (not if battery very low)
       # max score 103%
       [Rule]
       name=hi_cpu
       ac=off
       battery_interval=40-100
       cpu_interval=ANY:70-100
       profile=hi
       [/Rule]

       # slow down a little if overheated
       # max score 103%
       [Rule]
       name=overheat
       acpi_temperature=55-100
       cpu_interval=ANY:0-100
       battery_interval=40-100
       profile=medium
       [/Rule]

       # full power when watching DVDs and not AC
       # can reach a 105% score
       [Rule]
       name=dvd_watching
       ac=off
       battery_interval=0-100
       acpi_temperature=0-100
       cpu_interval=ANY:0-100
       programs=xine,mplayer
       profile=hi
       [/Rule]

SEE ALSO

       cpufreqd(8),cpufreqd-set(1),cpufreqd-get(1)

AUTHOR

       Mattia Dongili <malattia@linux.it>

       George Staikos <staikos@0wned.org>

                                           05 May 2005                           CPUFREQD.CONF(5)