New Intel Patch Series To Further Help Alder Lake / Hybrid CPUs On Linux
In the year since Intel announced 12th Gen Core "Alder Lake" processors there have been a number of patches tuning the Linux kernel's scheduler and other code to better deal with the mix of the performance and efficient cores. While that looked to be all buttoned up for a number of months now with Alder Lake CPUs performing well on Linux, another patch series further adjusting the Linux sched/fair code was published to help with these Intel hybrid processor designs.
Intel engineer Ricardo Neri published a set of four patches on Thursday to further tune the Linux kernel scheduler code for Intel hybrid processors. In particular, the new work is about avoiding unnecessary migrations within SMT domains. He explained with the patch series:
No benchmarks or performance expectations were published as part of this sched/fair patch series but considering the current kernel behavior could lead to E cores pulling tasks from P cores, this may have some meaningful difference for some areas of Alder Lake performance as well as future Intel hybrid processors like the upcoming Raptor Lake.
Once these new patches are ready for the mainline kernel, of course, I'll be around with some fresh Intel Linux benchmarks to see the impact of these latest scheduler adjustments.
Intel engineer Ricardo Neri published a set of four patches on Thursday to further tune the Linux kernel scheduler code for Intel hybrid processors. In particular, the new work is about avoiding unnecessary migrations within SMT domains. He explained with the patch series:
Intel processors that support Intel Turbo Boost Max 3.0 use asym_packing to assign higher priorities to CPUs with higher maximum frequencies. It artificially assigns, however, a lower priority to the higher-numbered SMT siblings to ensure that they are used last.
This results in unnecessary task migrations within the SMT domains.
On processors with a mixture of higher-frequency SMT cores and lower-frequency non-SMT cores (such as Intel hybrid processors), a lower-priority CPU pulls tasks from the higher-priority cores if more than one SMT sibling is busy.
Do not use different priorities for each SMT sibling. Instead, tweak the asym_packing load balancer to recognize SMT cores with more than one busy sibling and let lower-priority CPUs pull tasks.
Removing these artificial priorities avoids superfluous migrations and lets lower-priority cores inspect all SMT siblings for the busiest queue.
No benchmarks or performance expectations were published as part of this sched/fair patch series but considering the current kernel behavior could lead to E cores pulling tasks from P cores, this may have some meaningful difference for some areas of Alder Lake performance as well as future Intel hybrid processors like the upcoming Raptor Lake.
Once these new patches are ready for the mainline kernel, of course, I'll be around with some fresh Intel Linux benchmarks to see the impact of these latest scheduler adjustments.
31 Comments