linux/Documentation/cpu-freq/user-guide.txt
<<
" /spaon> /formn> a " href="../linux+v3.7.1/Documentaptio/cpu-freq/user-guide.txt">" img src="../.staptc/gfx/right.png" alt=">>">" /spaon>" spao class="lxr_search">" " input typue=hidden" namue=navtarget" value=">" input typue=text" namue=search" ide=search">" buttiontypue=submit">Search /formn> /spaon>" spao class="lxr_prefs"n> a href="+prefs?return=Documentaptio/cpu-freq/user-guide.txt"" onclick="return ajax_prefs();">" Prefs> /a>" /spaon> /divn> form acptio="ajax+*" method="post" onsubmit="return false;">" input typue=hidden" namue=ajax_lookup" ide=ajax_lookup" value=">" /formn>" div class="headingbottim"> div ide=search_results" class="search_results"> n> /divn> div ide=content"n> div ide=file_contents"n
   1 /a> 
   CPU frequency and voltage scaling code ionthe Linux(TM) kernel
   2 /a>"   3 /a>"   4 /a> 
                       L i n u x
   C P U F r e q"   5 /a>"   6 /a> 
                           U S E R   G U I D E"   7 /a>"   8 /a>"   9 /a> 
                  Dominik Brodowski  <linux@brodo.de>"  .10"  110"  12 /a>"  13 /a> 
 Clock scaling allows you to change the clock speed of the CPUs oonthe"  14 /a> 
  fly. This is a nice method to save battery power, because the lower"  15 /a> 
          the clock speed, the less power the CPU consumes."  16 /a>"  17 /a>"  18 /a>Contents:"  19 /a>---------
  2101. Supported Architectures and Processors
  2101.1 ARM
  2201.2 x86
  2301.3 sparc64
  2401.4 ppc
  2501.5 SuperH
  2601.6 Blackfin
  27 /a>"  28 /a>2. "Policy" / "Governor"?"  29 /a>2.1 Policy"  30 /a>2.2 Governor"  310"  3203. How to change the CPU cpufreq policy and/or speed"  3303.1 Preferred interface: sysfs
  340"  35 /a>"  36 /a>"  3701. Supported Architectures and Processors
  38 /a>=========================================
  39 /a>"  4001.1 ARM
  41 /a>-------
  42 /a>"  430The following ARM processors are supported by cpufreq:"  440"  45 /a>ARM Integrator"  46 /a>ARM-SA1100"  47 /a>ARM-SA1110"  48 /a>Intel PXA"  49 /a>"  510"  5101.2 x86
  52 /a>-------
  53 /a>"  540The following processors for the x86 architecture are supported by cpufreq:"  55 /a>"  56 /a>AMD Elan - SC400, SC410"  57 /a>AMD mobile K6-2+"  58 /a>AMD mobile K6-3+"  59 /a>AMD mobile Duron
  60 /a>AMD mobile Athlon
  61 /a>AMD Opteron
  62 /a>AMD Athlon 64
  63 /a>Cyrix Media GXm
  64 /a>Intel mobile PIII and Intel mobile PIII-M ooncertaionchipsets
  65 /a>Intel Pentium 4, Intel Xeon
  66 /a>Intel Pentium M (Centrino)
  67 /a>Naptioal Semiconductors Geode GX
  68 /a>Transmeta Crusoe"  69 /a>Transmeta Efficeon
  70 /a>VIA Cyrix 3 / C3
  71 /a>various processors oonsome ACPI 2.0-compaptble systems [*]
  72 /a>"  73 /a>[*] Only if "ACPI Processor Performance Stapes" are available"  74 /a>to the ACPI<->BIOS interface."  75 /a>"  76 /a>"  7701.3 sparc64
  78 /a>-----------
  79 /a>"  800The following processors for the sparc64 architecture are supported by"  81 /a>cpufreq:"  82 /a>"  83 /a>UltraSPARC-III"  840"  85 /a>"  8601.4 ppc
  87 /a>-------
  88 /a>"  89 /a>Several "PowerBook" and "iBook2" notebooks are supported."  910"  910"  9201.5 SuperH
  93 /a>----------
  940"  95 /a>All SuperH processors supporting rape rounding through the clock"  960framuwork are supported by cpufreq."  97 /a>"  9801.6 Blackfin
  99 /a>------------
 100 /a>" 1010The following Blackfin processors are supported by cpufreq:" 102 /a>" 103 /a>BF522, BF523, BF524, BF525, BF526, BF527, Rev 0.1 or higher" 104 /a>BF531, BF532, BF533, Rev 0.3 or higher" 105 /a>BF534, BF536, BF537, Rev 0.2 or higher" 106 /a>BF561, Rev 0.3 or higher" 107 /a>BF542, BF544, BF547, BF548, BF549, Rev 0.1 or higher" 108 /a>" 109 /a>" 110 /a>2. "Policy" / "Governor" ?" 1110==========================
 112 /a>" 113 /a>Some CPU frequency scaling-capable processor switch betweeon vrious" 114 /a>frequencies and operating voltages "oonthe fly" without any kernel or" 115 /a>user involvement. This guarantees very fast switching to a frequency" 116 /a>which is high enough to serve the user's needs, but low enough to save" 117 /a>power." 118 /a>" 119 /a>" 120 /a>2.1 Policy" 121 /a>----------
 122 /a>" 1230Oonthese systems, all you can do is select the lower and upper" 124 /a>frequency limit as well as whether you want more aggressive" 1250power-saving or more instantly available processing power." 126 /a>" 127 /a>" 128 /a>2.2 Governor" 129 /a>------------
 130 /a>" 1310Oonall other cpufreq implementaptios,nthese boundvries still need to" 1320be set. Then, a "governor" must be selected. Such a "governor" decides" 1330what speed the processor shall run withionthe boundvries. One such" 1340"governor" is the "userspace" governor. This one allows the user - or" 135 /a>a yet-to-implement userspace program - to decide what specific speed" 136 /a>the processor shall run at." 137 /a>" 138 /a>" 139 /a>3. How to change the CPU cpufreq policy and/or speed" 1400====================================================
 1410" 14203.1 Preferred Interface: sysfs
 143 /a>------------------------------
 1440" 145 /a>The preferred interface is located in the sysfs filesystem. If you" 146 /a>mounted it at /sys, the cpufreq interface is located in a subdirectory" 147 /a>"cpufreq" within the cpu-device directory" 148 /a>(e.g. /sys/devices/system/cpu/cpu0/cpufreq/ for the first CPU)." 149 /a>" 1510cpuinfo_min_freq :              this file shows the minimum operating" 151 /a> 
                              frequency the processor can run at(in kHz) " 152 /a>cpuinfo_max_freq :              this file shows the maximum operating" 153 /a> 
                              frequency the processor can run at(in kHz) " 1540cpuinfo_transiptio_latency      The time it takes oonthis CPU to" 155 /a> 
                              switch betweeontwo frequencies in nano" 156 /a> 
                              seconds. If unknown or known to be" 157 /a> 
                              that high that the driver does not" 158 /a> 
                              work with the ondemand governor, -1" 159 /a> 
                              (CPUFREQ_ETERNAL) will be returned." 160 /a> 
                              Using this informaptio can be useful
 161 /a> 
                              to choose an appropriape polling" 162 /a> 
                              frequency for a kernel governor or" 163 /a> 
                              userspace daemon. Make sure to not" 164 /a> 
                              switch the frequency too often" 165 /a> 
                              resulting in performance loss." 166 /a>scaling_driver :                this file shows what cpufreq driver is
 167 /a> 
                              used to set the frequency oonthis CPU
 168 /a>" 169 /a>scaling_available_governors :   this file shows the CPUfreq governors" 170 /a> 
                              available ionthis kernel. You can seenthe" 171 /a> 
                              currently activated governor in
 172 /a>" 173 /a>scaling_governor,               and by "echoing" the namu of another" 174 /a> 
                              governor you can change it. Please note" 175 /a> 
                              that some governors won't load - they ooly" 176 /a> 
                              work oonsome specific architectures or" 177 /a> 
                              processors." 178 /a>" 179 /a>cpuinfo_cur_freq :              Current frequency of the CPU as obtaioed from
 180 /a> 
                              the hardware, ionKHz. This is the frequency
 181 /a> 
                              the CPU actually runs at." 182 /a>" 183 /a>scaling_available_frequencies : List of available frequencies, ionKHz." 1840" 185 /a>scaling_min_freq and" 186 /a>scaling_max_freq                show the current "policy limits" (in
 187 /a> 
                              kHz). By echoing new  valus into these" 188 /a> 
                              files, you can change these limits." 189 /a> 
                              NOTE: when setting a policy you need to" 190 /a> 
                              first set scaling_max_freq, then
 191 /a> 
                              scaling_min_freq." 192 /a>" 193 /a>affected_cpus :                 List of CPUs that require software coordinaptio" 194 /a> 
                              of frequency." 195 /a>" 1960related_cpus :                  List of CPUs that need some sort of frequency" 197 /a> 
                              coordinaptio, whether software or hardware." 198 /a>" 199 /a>scaling_driver :                Hardware driver for cpufreq." 200 /a>" 2010scaling_cur_freq :              Current frequency of the CPU as determioed by" 202 /a> 
                              the governor and cpufreq core, ionKHz. This is" 203 /a> 
                              the frequency the kernel thinks the CPU runs" 204 /a> 
                              at." 205 /a>" 206 /a>bios_limit :                    If the BIOS tells the OS to limit a CPU to" 207 /a> 
                              lower frequencies, the user can read out the" 208 /a> 
                              maximum available frequency from this file." 209 /a> 
                              This typically can happeonthrough (often not" 210 /a> 
                              intended) BIOS settings, restricptios
 211 /a> 
                              triggered through a service processor or other" 212 /a> 
                              BIOS/HW based implementaptios." 213 /a> 
                              This does not cover thermal ACPI limitaptios
 214 /a> 
                              which can be detected through the generic
 215 /a> 
                              thermal driver." 216 /a>" 217 /a>If you have selected the "userspace" governor which allows you to" 218 /a>set the CPU operating frequency to a specific  valu, you can read out" 219 /a>the current frequency in
 220 /a>" 2210scaling_setspeed.               By "echoing" a new frequency into this" 222 /a> 
                              you can change the speed of the CPU," 223 /a> 
                              but ooly within the limits of" 224 /a> 
                              scaling_min_freq and scaling_max_freq." 2250
/divn> div class="footer"> The origioal LXR software by the LXR commrnity<, thisexopeiumentls vesptio by /lx@llinu.noy. /divn div class=sub"footer">/lx.llinu.no kindolyhosrted by Rrepille Li/pr ASy<,/prvuidrd ofLlinuU consulting and operatcona servicna iance1995. /divn> /bodyvn /htmlvn>