A new fix for the Linux kernel scheduler, targeting issues with Cache Aware Load Scheduling on hybrid CPUs, has been released as part of the Linux 7.3-rc2 kernel test release. The update addresses performance misfits that can occur when tasks are assigned to smaller cores on systems with both large and small cores.
Cache Aware Scheduling is a kernel feature designed to improve performance by grouping related tasks on CPU cores sharing the same last level cache (LLC), reducing latency and avoiding cache bouncing. However, Intel engineer Tim Chen discovered that on hybrid CPUs, this scheduling could sometimes lead to tasks being assigned to the less powerful 'little' cores, creating a performance bottleneck.
According to Chen, “Cache-aware load balancing biases tasks toward their preferred LLC. On asymmetric CPU capacity systems (e.g. big.LITTLE) the destination LLC may contain CPUs that are too small to run the task. Pulling the task there turns it into a misfit, trading a cache-locality gain for a capacity loss that's more detrimental to performance.”
The fix implemented by Chen includes two checks: `can_migrate_llc_task()` which prevents migration to a destination CPU if the task wouldn't fit, and `alb_break_llc()` which prevents pushing tasks onto unsuitable CPUs during active balancing. These checks are specifically applied to hybrid processors, leaving symmetric systems unaffected. Tasks that already don't fit their current CPU are handled by the existing LLC policy, and misfit tasks are prioritized during load balancing.
Read the original coverage
💬 Comments
📜 Comment Policy