Intel Hardware Feedback Interface "HFI" Driver Submitted For Linux 5.18
The Intel Hardware Feedback Interface is used for communicating performance and energy efficiency capabilities of individual CPU cores of the system. The Linux kernel will utilize the HFI data for improved task placement when deciding where to place tasks among the available CPU cores/threads. Intel engineers have been working on this new Linux driver for the past several months going back to last year.
The Intel HFI driver is to be part of the Linux 5.18 kernel.
The Intel Hardware Feedback Interface power/thermal data is dynamically updated in real-time based on current system conditions and other factors. From the kernel documentation with the new Intel HFI driver:
The Hardware Feedback Interface provides to the operating system information about the performance and energy efficiency of each CPU in the system. Each capability is given as a unit-less quantity in the range [0-255]. Higher values indicate higher capability. Energy efficiency and performance are reported in separate capabilities. Even though on some systems these two metrics may be related, they are specified as independent capabilities in the Intel SDM.
These capabilities may change at runtime as a result of changes in the operating conditions of the system or the action of external factors. The rate at which these capabilities are updated is specific to each processor model. On some models, capabilities are set at boot time and never change. On others, capabilities may change every tens of milliseconds. For instance, a remote mechanism may be used to lower Thermal Design Power. Such change can be reflected in the HFI. Likewise, if the system needs to be throttled due to excessive heat, the HFI may reflect reduced performance on specific CPUs.
The kernel or a userspace policy daemon can use these capabilities to modify task placement decisions. For instance, if either the performance or energy capabilities of a given logical processor becomes zero, it is an indication that the hardware recommends to the operating system to not schedule any tasks on that processor for performance or energy efficiency reasons, respectively.
The Linux driver for Intel HFI was submitted today as part of the thermal updates for Linux 5.18. Along with the driver itself, the intel-speed-select utility was also updated for handling Intel HFI data. There are also fixes to other thermal drivers and other normal code churn as part of this pull request but Intel HFI is the most notable addition for end-users.