On Tue, Feb 28, 2023 at 01:02:33PM -0800, Arjan van de Ven wrote: Thomas Gleixner wrote: > > > > Maybe we should enforce CONFIG_SMP=y first :) > > > > Thanks, > > for 64 bit I can see the point of removing the !SMP case entirely from arch/x86 . > maybe even for 32 bit if it just makes the code simpler I suppose As one of the folks keeping an eye on tinyconfig and kernel size, I actually think we *should* make this change and rip out !CONFIG_SMP, albeit carefully. In particular, I would propose that we rip out !CONFIG_SMP, *but* we allow building with CONFIG_NR_CPUS=1. (And we could make sure in that case that the compiler can recognize that at compile time and optimize accordingly, so that it might provide some of the UP optimizations for us.) Then, any *optimizations* for the "will only have one CPU, ever" case can move to CONFIG_NR_CPUS=1 rather than !CONFIG_SMP. I think many of those optimizations may be worth keeping for small embedded systems, or for cases like Linux-as-bootloader or similar. The difference here would be that code written for !CONFIG_SMP today needs to account for the UP case for *correctness*, whereas code written for CONFIG_SMP can *optionally* consider CONFIG_NR_CPUS=1 for *performance*.