Intel Thread Director Is Headed To Linux For A Major Boost In Alder Lake Performance

Intel Alder Lake
Hetereogeneous computing is nothing new, of course, but typically it has been one type of CPU core and one type of GPU, along with media processing blocks and other small functional units -- at least on desktop and notebooks systems. Intel's Alder Lake CPUs are the first x86-64 processors to embrace a hybrid paradigm with two separate CPU architectures on the same die.

These two separate CPU architectures have different strengths and capabilities. The Golden Cove "performance cores" (or P-cores) feature Intel's latest high-performance desktop CPU architecture, and they are blisteringly fast. Meanwhile, the Gracemont "efficiency cores" (or E-cores) are so small that four of them, along with 2MB of shared L2 cache, can nearly fit in the same space as a single Golden Cove core. They're slower than the Golden Cove cores, but also much more efficient, at least in theory.

The idea is that background tasks and light workloads can be run on the E-cores, saving power, while latency-sensitive and compute-intensive tasks can be run on the faster P-cores. The benefits of this may not have been exactly as clear as Intel would have liked on Windows, but they were even less visible on Linux. That's because Linux isn't aware of the unusual configuration of Alder Lake CPUs.

Well, that's changing in Linux 5.18, slated for release this spring. Linux 5.18 is bringing support for the Intel Enhanced Hardware Feedback Interface, or EHFI. Kernel support for reading EHFI data will allow the operating system to more intelligently schedule tasks on the CPU's logical cores, which will allow the P-cores and E-cores to be used as they were intended. This is essentially the crux of Intel's "Thread Director," which is an intelligent, low-latency hardware-assisted scheduler.

This news comes courtesy of Phoronix, which reports that Intel's EHFI kernel code has been merged into the "linux-next" branch of linux-pm, the Linux power management subsystem. That apparently means it will be in the next kernel cycle, 5.18. The site goes on to say that Linux 5.18 stable should be available in late May or thereabouts.