Intel Linux engineers are preparing the Linux kernel’s Intel Thermal driver for supporting Directed Package Thermal Interrupts as a new feature of recent Intel CPUs.
Rather than package-level thermal interrupts being broadcast to all CPU cores, newer Intel CPUs allow for just broadcasting them to one CPU core tasked with the package-wide events. This cuts down on resource contention and can avoid needlessly waking up possible idle CPU cores.
The Linux patches don’t note which new Intel CPU cores support this directed package thermal interrupts functionality, but it was just added to the Intel Software Developer Manual last month, potentially indicating it’s only coming with Nova Lake ~ Diamond Rapids but the cover letter notes “newer” Intel CPUs supporting it, so we’ll see in practice which processors end up having this support.
The patch series explains of this new Intel Thermal feature:
“Package-level thermal interrupts are currently broadcast to all CPUs in a package. Only one CPU is needed to service package-wide events. Moreover, broadcasting may create resource contention. An example of this are thermal interrupts posted for Hardware Feedback Interface updates: all CPUs in the package receive the interrupt and then race to grab a lock to update a data structure common to all CPUs. Idle CPUs were needlessly woken up.
Newer Intel processors allow directing package-level thermal interrupts only to CPUs that explicitly request them. A CPU opts in by setting bit 25 in IA32_THERM_INTERRUPT. Hardware acknowledges the request by setting bit 25 in IA32_PACKAGE_THERM_STATUS.
This series enables directed package thermal interrupts and designates one handler CPU per package using the CPU hotplug infrastructure. A new CPU is selected if the handler CPU goes offline.”
All the small improvements continue adding up and ensuring a nice Intel CPU experience on Linux.
