Earlier this year Linux kernel patches were posted for making SMP support unconditional so the kernel is always built for multi-core capabilities. With uniprocessor core environments being extremely rare especially for those that would be using an up-to-date, upstream Linux kernel, dropping non-SMP support would allow simplifying code paths within the kernel. Well, for Linux 6.17 it’s finally happening.
The patches standardize the Linux scheduler on the Symmetric Multi-Processing (SMP) to avoid unnecessary complexity and obstacles with the non-SMP patches likely never used but posing a maintenance and complexity burden on kernel developers.
The kernel now makes CONFIG_SMP=y unconditional given the realities of today. If by chance anyone is still running a single core PC with an up-to-date Linux kernel in 2025, it still works albeit with some increased overhead due to additional primitives and data structures from the SMP-enabled kernel.
Making SMP unconditional was merged as part of the scheduler updates for Linux 6.17.
“Make SMP unconditional: build the SMP scheduler’s data structures and logic on UP kernel too, even though they are not used, to simplify the scheduler and remove around 200 #ifdef/[#else]/#endif blocks from the scheduler. (Ingo Molnar)”
That scheduler pull also landed the initial code around proxy execution for real-time scheduling.