Brain Fuck Scheduler
|This article needs to be updated. (November 2016)|
0.512 / October 3, 2016
|Development status||Discontinued |
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 did 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 v3.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. Seven 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.
BFS is the default scheduler for the following desktop Linux distributions:
Additionally, BFS has been added to an experimental branch of Google's Android development repository. It was not included in the Froyo release after blind testing did not show an improved user experience.
- "-ck hacking: BFS version 0.512, linux-4.8-ck1, MuQSS for linux-4.8". ck-hack.blogspot.com. 2016-10-03. Retrieved 2016-11-10.
- "ck-hacking: linux-4.8-ck2, MuQSS version 0.114". ck-hack.blogspot.com. 2016-10-21. Retrieved 2016-11-10.
- "Con Kolivas Introduces New BFS Scheduler » Linux Magazine". Linuxpromagazine.com. 2009-09-02. Retrieved 2013-10-30.
- "FAQs about BFS v0.330". Ck.kolivas.org. Retrieved 2013-10-30.
- "CPU Schedulers Compared" (PDF). Repo-ck.com. Retrieved 2013-10-30.
- "Con Kolivas Returns, With a Desktop-Oriented Linux Scheduler". Slashdot. Retrieved 2013-10-30.
- "Ingo Molnar Tests New BF Scheduler". Linux Magazine. 2009-09-08. Retrieved 2013-10-30.
- "Sabayon 7 Brings Linux Heaven". Ostatic.com. Retrieved 2013-10-30.
- "2010 Edition is now available for download.". PCLinuxOS. 2013-10-22. Retrieved 2013-10-30.
- "Zenwalk 6.4 is ready ! - Releases - News". Zenwalk.org. Retrieved 2013-10-30.
-  Archived September 22, 2009, at the Wayback Machine.
- "CyanogenMod 5 for the G1/ADP1". Lwn.net. Retrieved 2013-10-30.