Overclocking
Thermal Headroom Sets the Real Ceiling
The limit that bites first is almost never the one people are trying to raise. It is the heat the part can shed.
A modern part meets its first limit as heat, not as a failed transistor. Between the frequency the software asks for and the frequency the cooling can sustain there is a margin, and that margin is managed second by second by code whose first reflex is to hand performance back. Read that management wrong and a stress run reports a stability that was never tested, on clocks that were never actually held.
The voltage term dominates the heat bill
Switching power in a chip follows the capacitance switched per clock cycle, the supply voltage, the activity of the transistors and the clock frequency, in the form C·V²·A·f. Voltage enters that expression squared, which is why it is called the main determinant of power usage and heating. Frequency looks like the whole story in a monitoring window and is not. Total power also carries static leakage, which has grown as transistor sizes shrank and threshold voltages dropped; a standard account of chip power puts dynamic switching at roughly two thirds of the total a decade back, and puts leakage in the lead on contemporary CPUs and SoCs. A cooling system is therefore not carrying the clock. It is carrying a voltage term that grows faster than anything else on the bill, plus a leakage floor that does not care what the workload is doing.
Why does a hot part slow down before it fails?
Because shedding performance is the cheaper defense. Dynamic frequency scaling adjusts a processor's frequency on the fly to its actual needs, to conserve power and reduce heat, and it almost always travels with dynamic voltage scaling, since a higher frequency needs a higher supply voltage for the circuit to produce correct results. Together the two are DVFS, and the vendor names stacked on top of them, SpeedStep, Cool'n'Quiet, PowerNow!, PowerTune on graphics parts, change far more often than the mechanism underneath. Each layer of the stack changed what the operating system was allowed to decide.
| Layer | What it exposes to the OS | What happens as a result |
|---|---|---|
| ACPI 1.0, 1996 | Idle C states | No frequency scaling is defined at all; the clock is outside the conversation |
| ACPI 2.0, 2000 | P states, 16 at most, each a frequency and power setting | The operating system sets the speed by switching between the states the processor declared |
| ACPI 5.0, 2011 | CPPC, hundreds of performance levels abstracted away from the frequency | The processor gains room to adjust its workings in ways other than the clock |
| Hardware-managed scaling, Intel from Skylake, AMD from Zen 2 | A performance level range and an efficiency preference hint | The CPU scales itself continuously, over a model-specific register on AMD from Zen 3, through ACPI AML on Zen 2, with CPPC enabled in both cases |
The newest layer pulls the decision onto the die, which is exactly where a tester loses sight of it. Below the performance states sit the throttling states, which trim a processor by inserting stop-clock signals and omitting duty cycles without lowering the clock rate itself. That detail matters on a bench: a monitoring window can show a healthy frequency on a part that is doing less work per second than the frequency implies.
So the consequence is blunt. The clock recorded at the end of a loaded run is the clock the scaling layer permitted at that temperature. A pass that never logged clocks has tested the clocks it happened to be handed, a distinction the desk takes up on what a stress test actually proves.
The loop that feeds itself
Temperature does not only cost performance, it can raise the bill. The efficiency of components such as voltage regulators decreases as temperature climbs, so the power drawn can increase with temperature, and a raise in voltage or frequency can push system power demands up faster than the formula above suggests, with the reverse holding just as true. That feedback is what the term thermal runaway names.
Driving voltage upward to hold a clock feeds the same loop from the other end. The power dissipated grows with the square of the applied voltage, so even small increases move the heat a great deal, and overheating with damage to circuits can occur very quickly at high voltages. Past some threshold the trade inverts entirely: at higher temperatures transistor performance suffers, and the performance lost to heat exceeds the gain the higher voltage was bought for. The rest arrives later, because hot carrier injection and electromigration advance more rapidly at higher voltages and shorten the life of the part. Where that ledger ends up is set out plainly on what you actually risk.
What does cooling actually change?
Cooling adds no performance. It decides which region of the curve the machine is allowed to occupy, and the same physics read backwards explains why undervolting has the reputation it has: lowering a component's voltage cuts temperature and cooling requirements, sometimes far enough that a fan can be omitted altogether, and the margin is individual, since one CPU can undervolt slightly better than another of the same model. The limit belongs in the same sentence, because below the manufacturer's recommended minimum voltage the system becomes unstable.
Headroom is not proportional either. Static leakage and execution time give software energy a convex shape, with an optimal frequency where consumption reaches its minimum, and in most constant-voltage cases it is more efficient to run briefly at peak speed and then idle deeply than to sit at a reduced clock for a long time. More cooling buys room. What fills the room is decided elsewhere.
Where the kernel keeps the paperwork
None of this takes exotic tooling to observe on a Linux machine. The kernel keeps a section of thermal documentation for driver authors inside its driver API manuals, filed among the subsystem-specific APIs, and the copy read for this page carries a 7.3.0-rc1 header. What that index holds is material for people writing drivers. What it does not hold is a number for the reader's own part. The temperatures and clocks a bench works with come from the machine's reporting, and reading those figures properly is its own discipline, the one temperature and voltage sensors covers. The manual explains the plumbing. It will not say whether the cooler is the ceiling; only a run with clocks logged next to temperatures can.
Before you blame the part
- Read clocks and temperatures from the same run; a temperature trace without its clock column cannot show what the scaling layer took away.
- Log the whole run instead of quoting an average, since scaling decisions happen second by second and an average flattens the fall out of existence.
- Change one thing between runs, ideally the cooling and nothing else, or the comparison measures the workload rather than the margin.
- Record the reported voltage next to the clocks, because the power bill moves with voltage and heat together and either one alone tells half the story.
- Return the board to the vendor's defaults before concluding anything about the silicon, since a limit found under a raised setting is a limit of that setting.
Where this goes wrong
Treating a temperature as the result. The throttling states can hold the clock rate where it was while duty cycles are omitted, so a monitor that only watches frequency reads a healthy figure on a part doing less work per second than that figure implies.
Buying headroom with voltage. Power grows with the square of the applied voltage, overheating and damage to circuits can occur very quickly at high voltages, and the aging effects that follow run faster as voltage rises, so the cost lands after the run is over rather than during it.
Reading an undervolt as free cooling. Below the manufacturer's recommended minimum the system becomes unstable, and the distance to that point is per-chip silicon lottery, so a margin that held on one sample proves nothing about the next one.
Crediting the run. A clean result under a scaling layer certifies the clocks that were allowed and says nothing about the headroom the cooling withheld, and the gap between those two statements is the whole subject of this page.
One gesture closes the loop. Pull the last long run, put the clock column next to the temperature column, and find the first moment they moved in opposite directions. If the clocks fell while the heat climbed, the ceiling in your notes belongs to the cooler, and the part underneath it was never finished being tested.