Documentation/hwmon/coretemp.rst

Source file repositories/reference/linux-study-clean/Documentation/hwmon/coretemp.rst

File Facts

System
Linux kernel
Corpus path
Documentation/hwmon/coretemp.rst
Extension
.rst
Size
6971 bytes
Lines
235
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

Kernel driver coretemp
======================

Supported chips:
  * All Intel Core family and Atom processors with Digital Thermal Sensor (DTS)

    Prefix: 'coretemp'

    CPUID: family 0x6, models with X86_FEATURE_DTHERM, including:

			    - 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), 0x37 (Bay Trail Atom),
			    - 0x4a (Merrifield Atom), 0x4c (Cherry Trail Atom),
			    - 0x5a (Moorefield Atom), 0x5c (Apollo Lake Atom),
			    - 0x7a (Gemini Lake Atom),
			    - 0x96 (Elkhart Lake Atom), 0x9c (Jasper Lake Atom)

    Datasheet:

	       Intel 64 and IA-32 Architectures Software Developer's Manual
	       Volume 3A: System Programming Guide
	       (https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)

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
available on Sandy Bridge and all newer processors. 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	  Maximum recommended operating temperature (Tcontrol).
		  All cooling devices should be turned on.
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 "Package id Y",
		  where Y is the package number.
================= ========================================================

On modern CPUs (Nehalem and newer), TjMax is read from the
MSR_IA32_TEMPERATURE_TARGET register. On older models without this MSR,
TjMax is determined using lookup tables or heuristics. If these don't work
for your CPU, 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

Annotation

Implementation Notes