Kernel driver coretemp
- Supported chips:
All Intel Core family
Prefix: 'coretemp'
CPUID: family 0x6, models
- 0xe (Pentium M DC), 0xf (Core 2 DC 65nm),
- 0x16 (Core 2 SC 65nm), 0x17 (Penryn 45nm),
- 0x1a (Nehalem), 0x1c (Atom), 0x1e (Lynnfield),
- 0x26 (Tunnel Creek Atom), 0x27 (Medfield Atom),
- 0x36 (Cedar Trail Atom)
Datasheet:
Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide
Author: Rudolf Marek
Description
This driver permits reading the DTS (Digital Temperature Sensor) embedded inside Intel CPUs. This driver can read both the per-core and per-package temperature using the appropriate sensors. The per-package sensor is new; as of now, it is present only in the SandyBridge platform. The driver will show the temperature of all cores inside a package under a single device directory inside hwmon.
Temperature is measured in degrees Celsius and measurement resolution is 1 degree C. Valid temperatures are from 0 to TjMax degrees C, because the actual value of temperature register is in fact a delta from TjMax.
Temperature known as TjMax is the maximum junction temperature of processor, which depends on the CPU model. See table below. At this temperature, protection mechanism will perform actions to forcibly cool down the processor. Alarm may be raised, if the temperature grows enough (more than TjMax) to trigger the Out-Of-Spec bit. Following table summarizes the exported sysfs files:
All Sysfs entries are named with their core_id (represented here by 'X').
tempX_input | Core temperature (in millidegrees Celsius). |
tempX_max | All cooling devices should be turned on (on Core2). |
tempX_crit | Maximum junction temperature (in millidegrees Celsius). |
tempX_crit_alarm | Set when Out-of-spec bit is set, never clears. Correct CPU operation is no longer guaranteed. |
tempX_label | Contains string "Core X", where X is processor number. For Package temp, this will be "Physical id Y", where Y is the package number. |
On CPU models which support it, TjMax is read from a model-specific register. On other models, it is set to an arbitrary value based on weak heuristics. If these heuristics don't work for you, you can pass the correct TjMax value as a module parameter (tjmax).
Appendix A. Known TjMax lists (TBD): Some information comes from ark.intel.com
Process | Processor | TjMax(C) |
22nm | Core i5/i7 Processors i7 3920XM, 3820QM, 3720QM, 3667U, 3520M i5 3427U, 3360M/3320M i7 3770/3770K i5 3570/3570K, 3550, 3470/3450 i7 3770S i5 3570S/3550S, 3475S/3470S/3450S i7 3770T i5 3570T i5 3470T | 105 105 105 105 103 103 94 94 91 |
32nm | Core i3/i5/i7 Processors i7 2600 i7 660UM/640/620, 640LM/620, 620M, 610E i5 540UM/520/430, 540M/520/450/430 i3 330E, 370M/350/330 i3 330UM | 98 105 105 90 rPGA, 105 BGA 105 |
32nm | Core i7 Extreme Processors 980X | 100 |
32nm | Celeron Processors U3400 P4505/P4500 | 105 90 |
32nm | Atom Processors S1260/1220 S1240 Z2460 Z2760 D2700/2550/2500 N2850/2800/2650/2600 | 95 102 90 90 100 100 |
45nm | Xeon Processors 5400 Quad-Core X5492, X5482, X5472, X5470, X5460, X5450 E5472, E5462, E5450/40/30/20/10/05 L5408 L5430, L5420, L5410 | 85 85 95 70 |
45nm | Xeon Processors 5200 Dual-Core X5282, X5272, X5270, X5260 E5240 E5205, E5220 L5240 L5238, L5215 | 90 90 70, 90 70 95 |
45nm | Atom Processors D525/510/425/410 K525/510/425/410 Z670/650 Z560/550/540/530P/530/520PT/520/515/510PT/510P Z510/500 N570/550 N475/470/455/450 N280/270 330/230 E680/660/640/620 E680T/660T/640T/620T E665C/645C E665CT/645CT CE4170/4150/4110 CE4200 series CE5300 series | 100 100 90 90 90 100 100 90 125 90 110 90 110 110 unknown unknown |
45nm | Core2 Processors Solo ULV SU3500/3300 T9900/9800/9600/9550/9500/9400/9300/8300/8100 T6670/6500/6400 T6600 SU9600/9400/9300 SP9600/9400 SL9600/9400/9380/9300 P9700/9600/9500/8800/8700/8600/8400/7570 P7550/7450 | 100 105 105 90 105 105 105 105 90 |
45nm | Core2 Quad Processors Q9100/9000 | 100 |
45nm | Core2 Extreme Processors X9100/9000 QX9300 | 105 100 |
45nm | Core i3/i5/i7 Processors i7 940XM/920 i7 840QM/820/740/720 | 100 100 |
45nm | Celeron Processors SU2300 900 | 100 105 |
65nm | Core2 Duo Processors Solo U2200, U2100 U7700/7600/7500 T7800/7700/7600/7500/7400/7300/7250/7200/7100 T5870/5670/5600/5550/5500/5470/5450/5300/5270 T5250 T5800/5750/5200 L7700/7500/7400/7300/7200 | 100 100 100 100 100 85 100 |
65nm | Core2 Extreme Processors X7900/7800 | 100 |
65nm | Core Duo Processors U2500/2400 T2700/2600/2450/2400/2350/2300E/2300/2250/2050 L2500/2400/2300 | 100 100 100 |
65nm | Core Solo Processors U1500/1400/1300 T1400/1350/1300/1250 | 100 100 |
65nm | Xeon Processors 5000 Quad-Core X5000 E5000 L5000 L5318 | 90-95 80 70 95 |
65nm | Xeon Processors 5000 Dual-Core 5080, 5063, 5060, 5050, 5030 5160, 5150, 5148, 5140, 5130, 5120, 5110 L5138 | 80-90 80 100 |
65nm | Celeron Processors T1700/1600 560/550/540/530 | 100 100 |