In time for next week’s Linux Plumbers Conference in Dublin, Ireland, AMD also plans to look at ways to improve the scheduler for the “split last-level cache” (LLC) architecture. As an engineer on AMD’s Linux server team, K. Prateek Nayak has just released a series of patches and is focusing on the User-Space Hinting task placement count.
Phoronix notes that the latest work indicates that AMD intends to improve the Linux kernel scheduler and use it for the LLC CPU project to improve the company’s EPYC server processors.
The new patch is still in the “experimental” and “request for comments” phase, as indicated by the markings on the Linux Kernel Notices Mailing List (LKML).
"The current API is designed to set only low-level hints and is not available to the public - it is only used to test and demonstrate the efficacy of User-Space Hinting in application scheduling scenarios/optimal placement decisions. Schedulers are free to ignore user-space hints if they believe that following them will put the system in a sub-optimal state."
By contrast, the heuristics used by today’s schedulers — such as WF-SYNC tagging, wake_wide() logic, etc. — still have the shortcoming of not being able to accurately infer the nature of the workload.
"In other words, the scheduler does not understand whether it is better to merge, or split, a set of threads. The inability to infer the nature of the workload, or lead to a series of inaccurate placement decisions, in turn, adversely affects the performance of the workload. For systems with split LLCs, such as the AMD EPYC Skyline server platform, the negative impact is severely magnified."
The good news is that the new patch series includes the ability to select task placement near the parent level when there are inactive cores in the local group. This process is responsible for deciding to continue to scale the workload with the group containing the least amount of utilization and checking for other possible hints.
"Last year, Peter Zijlstra, an engineer on Intel's Linux kernel team, introduced an advanced hinting framework. It was designed to help the kernel scheduler's task sequences cope with increasingly complex CPUs and workloads, and the current state of User-Space Hinting was done through the prctl() interface."
Finally, preliminary test results on Intel Xeon Ice Lake platforms show that EPYC servers are expected to see effective performance improvements on Hackbench, Schbench, Tbench, and other types of workloads.
However, since the patch series is still in the experimental stage, presumably end users will have to wait a few months before they see it ready to be added to the Linux kernel.