Brain Fuck Scheduler
|Stable release||0.430 / May 07, 2013|
|License||GPL (free software)|
The Brain Fuck Scheduler (BFS) is a process scheduler designed for the Linux kernel in August 2009 as an alternative to the Completely Fair Scheduler and the O(1) scheduler. BFS was created by veteran kernel programmer Con Kolivas.
The objective of BFS, compared to other schedulers, is to provide a scheduler with a simpler algorithm, that does not require adjustment of heuristics or tuning parameters to tailor performance to a specific type of computation workload. The BFS author asserted that these tunable parameters were difficult for the average user to understand, especially in terms of interactions of multiple parameters with each other, and claimed that the use of such tuning parameters could often result in improved performance in a specific targeted type of computation, at the cost of worse performance in the general case. BFS has been reported to improve responsiveness on light-NUMA (non-uniform memory access) Linux mobile devices and desktop computers with fewer than 16 cores.
Shortly following its introduction, the new scheduler made headlines within the Linux community, appearing on Slashdot, with reviews in Linux Magazine and Linux Pro Magazine. Although there have been varied reviews of improved performance and responsiveness, Con Kolivas does not intend for BFS to be integrated into the mainline kernel.
In a contemporary study, the author compared the BFS to the CFS using the Linux kernel v2.6.2 and several performance-based endpoints. The purpose of this study was to evaluate the Completely Fair Scheduler (CFS) in the vanilla Linux kernel and the BFS in the corresponding kernel patched with the ck1 patchset. 7 different machines were used to see if differences exist and, to what degree they scale using performance based metrics. Number of logical CPUs ranged from 1 to 16. These end-points were never factors in the primary design goals of the BFS. The results were encouraging.
Kernels patched with the ck1 patch set including the BFS outperformed the vanilla kernel using the CFS at nearly all the performance-based benchmarks tested. Further study with a larger test set could be conducted, but based on the small test set of 7 PCs evaluated, these increases in process queuing, efficiency/speed are, on the whole, independent of CPU type (mono, dual, quad, hyperthreaded, etc.), CPU architecture (32-bit and 64-bit) and of CPU multiplicity (mono or dual socket).
Moreover, several "modern" CPUs, such as the Intel Core 2 Duo and Core i7, that represent common workstations and laptops, consistently outperformed the CFS in the vanilla kernel at all benchmarks. Efficiency and speed gains were small to moderate.
Desktop Linux Distributions 
BFS is the default scheduler for:
See Also 
- Linux Pro Magazine on BFS
- Con Kolivas introduces BFS
- Explanation of BFS
- Slashdot coverage of BFS introduction
- Linux Magazine Review of BFS
- CPU Schedulers Compared.pdf
- PCLinuxOS 2010 Edition is now available for download
- BFS in Zenwalk 6.4
- BFS added to Android repository
- LWN.net - CyanogenMod 5 for the G1/ADP1