For helping with thread placement on modern AMD Zen systems with multiple CPU core complexes, Google has been developing “BPF CCX” that leverages the Linux kernel’s eBPF capabilities paired with a user-space agent for fine-grained thread control. Google has found very positive performance results out of their use of this alternative means of high performance scheduling for achieving even greater performance on AMD processors under Linux.
Google’s BPF CCX scheduler relies on a per-CCX runqueue with an asynchronous bin-packing algorithm to dynamically assign and manage the soft-affinity of thread groups. Google’s focus was on ensuring better virtual machine (VM) scheduling but this scheduling work can apply to other workloads too. For the purposes of Google’s data center their focus was obviously on AMD EPYC server processors but this can apply to AMD Ryzen CPUs for better scheduling between core complexes.
Google engineers did evaluate the ongoing upstreaming work led by Intel around Cache Aware Scheduling that also helps with AMD CPUs too but they felt that Cache Aware Scheduling needs additional “semi-expensive computation” in balancing and other design differences.
This work was presented earlier in the month in Tokyo at the Linux Plumbers Conference 2025. The benchmarks they shared of their BPF CCX work compared to the stock Linux EEVDF scheduler was very positive:
It will be very interesting to see where this work leads. Those wishing to learn more about this ongoing effort can find the LPC 2025 presentation embedded below along with the slide deck.
