Brain Fuck Scheduler

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Brain Fuck Scheduler
Developer(s) Con Kolivas
Stable release 0.416 / January 5, 2012[1]
Written in C
Operating system Linux
License GPL (free software)
Website kernel.kolivas.org

The Brain Fuck Scheduler (BFS) is a task scheduler designed for the Linux kernel in August of 2009 as an alternative to the Completely Fair Scheduler and the O(1) scheduler.[2] BFS was created by veteran kernel programmer Con Kolivas.[3]

The objective of BFS, compared to other schedulers, was to provide a scheduler with a simpler algorithm, that did 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.[4] 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.[5][6][7] Although there have been varied reviews of improved performance and responsiveness, it appears unlikely that BFS will be integrated into the mainline kernel.[8]

Contents

[edit] Android

BFS has been added to an experimental branch of Google's Android development repository.[9] It was not included in the Froyo release after blind testing did not show an improved user experience.[10]

[edit] Desktop Linux distributions

BFS is the default scheduler for Zenwalk 6.4,[11] PCLinuxOS 2010,[12] and Sabayon Linux 7.[13]

[edit] See also

[edit] References

[edit] External links

Personal tools
Namespaces

Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages