Short bio: Computer Scientist, FOSS supporter (read more)
Tux Machines (TM)-specific
The search for the perfect kernel scheduler is like searching for the Holy Grail. Linux 2.6 started with the O(1) scheduler, which solved a lot of issues for real-time processes. However, it didn’t scale to large NUMA (non-uniform memory access) machines. The Linux kernel can scale to 4096 processors. Not all the processors have to share the same bus architecture and memory. Rather, a machine could consist of multiple 16 to 24 processor systems connected by a high-speed bus. This is the world of NUMA, as each sysem has its own memory that can be shared with other systems. The Completely Fair Scheduler (CFS) scaled to large NUMA machines, but created problems with systems that had less than 16 cores. CFS also scales well to the high core count of new GPUs (Graphic Processing Unit), which can also run non-graphical processes. For mobile devices with less than 16 cores, it creates problems with heating.
CFS trades higher kernel overhead for maximizing interactive performance. On mobile devices, the higher overhead means running the processor at higher speeds, which builds more heat. Heat is the enemy of every mobile device.