AMD Ryzen processors are set to deliver another performance boost on Linux. Tejen Hue, a developer at Linux Red Hat, observed that the Last Level Cache (LLC), which is the Level 3 (L3) cache in the case of Zen 2 processors, could be further optimized.
The operating system assigns a specific task to a processor thread that is identified as “idle” by the OS. However, currently, the Linux kernel only identifies idle threads within the local LLC. However, with the latest proposed patch, this is set to change as “select_idle_sibling()” which will now also consider external LLC’s. This means the OS will be able to quickly schedule and queue tasks when there are idle threads on another CCX (CPU Complex) or CCD (Core Compute Die).
Linux kernel engineer Peter Zijlstra recently submitted the following patch titled “Shadow/Fair: Multi-LLC Select_Dil_Sibling()”. This reads:
Tejon reports that when he targets work queues with 3 cores/LLCs and 4 LLCs on his Zen2 machine, he gets significant idle time.
This is of course because of how select_idle_sibling() won’t consider anything outside of the local LLC, and since all these tasks are running briefly the intermittent idle load balancer is ineffective.
And while it’s good to keep the work cache local, it’s better not to have significant idle time. So, try select_idle_sibling() on other LLCs within the same node when the local one becomes empty.
The images below show AMD’s Zen 2 CCX, CCD, and cache classifications in terms of a single CCD (left) and dual CCDs (right).
The change specifically refers to Zen 2 or Ryzen 3000 series CPUs, but its predecessors such as Zen+ and the original Zen architecture also used a similar approach where each CCX has its own L3 cache or LLC, and They communicate through the Infinity Fabric.
The images below are the original Zen core architecture and its L1, L2, and L3 caches:
AMD continues to use it with the Zen 3 (Ryzen 5000) and Zen 4 (Ryzen 7000) series CPUs. Therefore, upcoming fixes will apply to the entire stack. This is actually something that older Zen CPU users will appreciate as Microsoft has considered the Zen-based Ryzen 1000 series chips to be unsupported for Windows 11.
The company moved from 16MB on the Zen 2 to a 32MB Shared LLC (SLLC) L3 design on the Zen 3:
While we’re on the subject of LLC, AMD’s main x86 rival Intel is also working on a new Level 4 (L4) cache for its 14th Gen Meteor Lake CPUs that could enable faster boot times.