1 .. SPDX-License-Identifier: GPL-2.0 2 3 ============================================== 4 Legacy Documentation of CPU Performance Scalin 5 ============================================== 6 7 Included below are historic documents describi 8 :doc:`CPU performance scaling <cpufreq>` drive 9 with the original white space formatting and i 10 the added leading space character in every lin 11 12 13 AMD PowerNow! Drivers 14 ===================== 15 16 :: 17 18 PowerNow! and Cool'n'Quiet are AMD names for 19 management capabilities in AMD processors. As 20 implementation changes in new generations of 21 there is a different cpu-freq driver for each 22 23 Note that the driver's will not load on the " 24 so it is safe to try each driver in turn when 25 which is the correct driver. 26 27 Note that the functionality to change frequen 28 is not available in all processors. The drive 29 to load on processors without this capability 30 is detected with the cpuid instruction. 31 32 The drivers use BIOS supplied tables to obtai 33 voltage information appropriate for a particu 34 Frequency transitions will be unavailable if 35 not supply these tables. 36 37 6th Generation: powernow-k6 38 39 7th Generation: powernow-k7: Athlon, Duron, G 40 41 8th Generation: powernow-k8: Athlon, Athlon 6 42 Documentation on this functionality in 8th ge 43 is available in the "BIOS and Kernel Develope 44 26094, in chapter 9, available for download f 45 46 BIOS supplied data, for powernow-k7 and for p 47 from either the PSB table or from ACPI object 48 is only available if the kernel config sets C 49 The powernow-k8 driver will attempt to use AC 50 and fall back to PST if that fails. 51 The powernow-k7 driver will try to use the PS 52 fall back to ACPI if the PSB support fails. A 53 acpi_force, is provided to force ACPI support 54 of PSB support. 55 56 57 ``cpufreq-nforce2`` 58 =================== 59 60 :: 61 62 The cpufreq-nforce2 driver changes the FSB on 63 64 This works better than on other platforms, be 65 can be controlled independently from the PCI/ 66 67 The module has two options: 68 69 fid: multiplier * 10 (for example 70 min_fsb: minimum FSB 71 72 If not set, fid is calculated from the curren 73 min_fsb defaults to FSB at boot time - 50 MHz 74 75 IMPORTANT: The available range is limited dow 76 Also the minimum available FSB can 77 booting with 200 MHz, 150 should a 78 79 80 ``pcc-cpufreq`` 81 =============== 82 83 :: 84 85 /* 86 * pcc-cpufreq.txt - PCC interface documenta 87 * 88 * Copyright (C) 2009 Red Hat, Matthew Garre< 89 * Copyright (C) 2009 Hewlett-Packard Develo 90 * Nagananda Chumbalkar <nagananda.chumba 91 */ 92 93 94 Processor Clocking Con 95 ---------------------- 96 97 Contents: 98 --------- 99 1. Introduction 100 1.1 PCC interface 101 1.1.1 Get Average Frequency 102 1.1.2 Set Desired Frequency 103 1.2 Platforms affected 104 2. Driver and /sys details 105 2.1 scaling_available_frequencies 106 2.2 cpuinfo_transition_latency 107 2.3 cpuinfo_cur_freq 108 2.4 related_cpus 109 3. Caveats 110 111 1. Introduction: 112 ---------------- 113 Processor Clocking Control (PCC) is an interf 114 firmware and OSPM. It is a mechanism for coor 115 performance (ie: frequency) between the platf 116 117 The PCC driver (pcc-cpufreq) allows OSPM to t 118 interface. 119 120 OS utilizes the PCC interface to inform platf 121 OS wants for a logical processor. The platfor 122 the requested frequency. If the request for t 123 satisfied by platform firmware, then it usual 124 conditions are in place, and "power capping" 125 126 1.1 PCC interface: 127 ------------------ 128 The complete PCC specification is available h 129 https://acpica.org/sites/acpica/files/Process 130 131 PCC relies on a shared memory region that pro 132 between the OS and platform firmware. PCC als 133 is used by the OS to inform the platform firm 134 sent. 135 136 The ACPI PCCH() method is used to discover th 137 memory region. The shared memory region heade 138 "status" interface. PCCH() also contains deta 139 doorbell. 140 141 The following commands are supported by the P 142 * Get Average Frequency 143 * Set Desired Frequency 144 145 The ACPI PCCP() method is implemented for eac 146 used to discover the offsets for the input an 147 memory region. 148 149 When PCC mode is enabled, the platform will n 150 or throttle states (_PSS, _TSS and related AC 151 the native P-state driver (such as acpi-cpufr 152 AMD) will not load. 153 154 However, OSPM remains in control of policy. T 155 computes the required performance for each pr 156 The PCC driver fills in the command interface 157 communicates the request to the platform firm 158 responsible for delivering the requested perf 159 160 Each PCC command is "global" in scope and can 161 the system. Therefore, PCC is capable of perf 162 the OS is capable of getting/setting the freq 163 the system with a single call to the BIOS. 164 165 1.1.1 Get Average Frequency: 166 ---------------------------- 167 This command is used by the OSPM to query the 168 processor since the last time this command wa 169 indicates the average unhalted frequency of t 170 a percentage of the nominal (ie: maximum) CPU 171 also signifies if the CPU frequency is limite 172 173 1.1.2 Set Desired Frequency: 174 ---------------------------- 175 This command is used by the OSPM to communica 176 desired frequency for a logical processor. Th 177 ignored by OSPM. The next invocation of "Get 178 OSPM if the desired frequency was achieved or 179 180 1.2 Platforms affected: 181 ----------------------- 182 The PCC driver will load on any system where 183 * supports the PCC interface, and the associa 184 * assumes responsibility for managing the har 185 to deliver the requested processor performanc 186 187 Currently, certain HP ProLiant platforms impl 188 platforms PCC is the "default" choice. 189 190 However, it is possible to disable this inter 191 such an instance, as is also the case on plat 192 is not implemented, the PCC driver will fail 193 194 2. Driver and /sys details: 195 --------------------------- 196 When the driver loads, it merely prints the l 197 frequencies supported by the platform firmwar 198 199 The PCC driver loads with a message such as: 200 pcc-cpufreq: (v1.00.00) driver loaded with fr 201 MHz 202 203 This means that the OPSM can request the CPU 204 between the limits (1600 MHz, and 2933 MHz) s 205 206 Internally, there is no need for the driver t 207 to a corresponding P-state. 208 209 The VERSION number for the driver will be of 210 eg: 1.00.02 211 ----- -- 212 | | 213 | -- this will increase with bug fixes 214 |-- this is the version of the PCC specif 215 216 217 The following is a brief discussion on some o 218 /sys filesystem and how their values are affe 219 220 2.1 scaling_available_frequencies: 221 ---------------------------------- 222 scaling_available_frequencies is not created 223 frequencies need to be listed because the BIO 224 frequency, within limits, requested by the go 225 to be strictly associated with a P-state. 226 227 2.2 cpuinfo_transition_latency: 228 ------------------------------- 229 The cpuinfo_transition_latency field is 0. Th 230 not include a field to expose this value curr 231 232 2.3 cpuinfo_cur_freq: 233 --------------------- 234 A) Often cpuinfo_cur_freq will show a value d 235 in the scaling_available_frequencies or scali 236 This is due to "turbo boost" available on rec 237 conditions are met the BIOS can achieve a sli 238 by OSPM. An example: 239 240 scaling_cur_freq : 2933000 241 cpuinfo_cur_freq : 3196000 242 243 B) There is a round-off error associated with 244 Since the driver obtains the current frequenc 245 nominal frequency from the BIOS, sometimes, t 246 scaling_cur_freq and cpuinfo_cur_freq may not 247 248 scaling_cur_freq : 1600000 249 cpuinfo_cur_freq : 1583000 250 251 In this example, the nominal frequency is 293 252 current frequency, cpuinfo_cur_freq, as 54% o 253 254 54% of 2933 MHz = 1583 MHz 255 256 Nominal frequency is the maximum frequency of 257 corresponds to the frequency of the P0 P-stat 258 259 2.4 related_cpus: 260 ----------------- 261 The related_cpus field is identical to affect 262 263 affected_cpus : 4 264 related_cpus : 4 265 266 Currently, the PCC driver does not evaluate _ 267 PCC do not implement SW_ALL. So OSPM doesn't 268 to ensure that the same frequency is requeste 269 270 3. Caveats: 271 ----------- 272 The "cpufreq_stats" module in its present for 273 expected to work with the PCC driver. Since t 274 provides information wrt each P-state, it is
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.