I developed the Intel Thread Director (ITD) / Hardware Feedback Interfce (HFI) device driver to obtain performance/efficiency information for each CPU core, which was implemented to improve the performance of Intel hybrid architecture CPUs. (e.g. Raptor Lake (refresh), Alder Lake, LakeField processors)
This driver simply obtains performance/efficiency information from the CPU and stores it in the "cpu_group" struct data referenced by the ULE scheduler.
However, since the ULE scheduler side is not yet supported, performance/efficiency cannot be improved by installing this driver at this time.
I will try to modify the ULE scheduler side in the future, but I posted this driver first because it can be implemented independently of this driver and it is difficult to modify the ULE scheduler.
There are seven patches, and this is the Part 2.
The performance/efficiency information of the ITD/HFI is updated using the Local APIC thermal interrupt, but the current implementation of the FreeBSD kernel does not use the Local APIC thermal interrupt. So enable this.
It also allows you to register interrupt mask control and handler functions.