We Rely On Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained for the past 13 years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium. You can also consider a tip via PayPal.

A few weeks back Con Kolivas returned to the Linux kernel scene
after parting ways with kernel development for two years. Con, who has contributed
a great deal to the Linux kernel in the past particularly with CPU schedulers,
returned and introduced BFS. BFS (not to be confused with the file-system of the same name) is
a new scheduler for the Linux kernel that's designed for optimal performance on
hardware that's more common with a majority of Linux desktop users, not massive
data centers running dozens (and in some cases, hundreds) of CPUs. The BFS scheduler
is designed to offer "extremely low latencies for excellent interactivity",
according to Con Kolivas. In this article we have a set of benchmarks comparing
BFS and the current default scheduler within the Linux kernel, the Completely
Fair Scheduler.

"BFS is the Brain Fuck Scheduler. It was designed to be forward
looking only, make the most of lower spec machines, and not scale to massive hardware.
Ie it is a desktop orientated scheduler, with extremely low latencies for excellent
interactivity by design rather than "calculated", with rigid fairness,
nice priority distribution and extreme scalability within normal load levels."

Additionally, Con goes on to note that its design is "ridiculously
simple" and "throws out everything about what we know is good about
how to design a modern scheduler in scalability", but unless you are running
a system with many processing cores (16+ cores), the Brain Fuck Scheduler should
be ideal. Con Kolivas has expressed no intentions of trying to get the BFS scheduler
introduced into the mainline Linux kernel tree, so right now all patches need
to be applied manually. In the BFS
patches directory is BFS version 211 for the Linux 2.6.31 kernel.

While we are not kernel scheduler experts, for our
testing we simply built a Linux 2.6.31 (final) kernel from source using a stock
configuration with the 1000Hz timer, preempt enabled, and dynamic ticks disabled,
per the BFS scheduler recommendations. When building the kernel one time we built
it with the Brain Fuck Scheduler built-in and then again, we built the 2.6.31
kernel with the same configuration but without BFS and instead using the Completely
Fair Scheduler. The Completely Fair Scheduler has been used in the Linux kernel
since version 2.6.23 and was created by Ingo Molnar but Con Kolivas inspired its
fair scheduling design.

We compared these two 64-bit kernels with the Brain Fuck Scheduler
and then the Completely Fair Scheduler on an ASRock
NetTop ION 330 system. This NVIDIA ION system has a dual-core Intel Atom 330
CPU with Hyper-Threading clocked at 2.10GHz, an ASRock AMCP7A-ION motherboard
(NVIDIA MCP79 Chipset), and GeForce 9400M 512MB graphics. This lower-end hardware
was tested since the only other large performance comparison of BFS comes from
Ingo Molnar with his benchmarks and
measurements where a sixteen-core system was used. Outside of our custom built
kernels we were using an Ubuntu 9.10 daily snapshot from 2009-09-10 with the GNOME
2.27.91 desktop, X Server 1.6.3, NVIDIA 190.32 display driver, GCC 4.4.1, and
an EXT4 file-system.

When running the Phoronix
Test Suite on both kernels, we ran a number of different tests (particularly
those that were multi-threaded) to look for performance differences between BFS
and the Completely Fair Scheduler. In the end we ended up eliminating most of
the tests that showed little difference between the two. The test results that
we ended up going with for this article are from World of Padman, timed Apache
compilation, timed PHP compilation, 7-Zip compression, GraphicsMagick, Apache,
Threaded I/O Tester, and PostMark. On the following pages are our first BFS scheduler
benchmarks from this Intel Atom system.

The mission at Phoronix since 2004 has centered around enriching the Linux hardware experience. In addition to supporting our site through advertisements, you can help by subscribing to Phoronix Premium. You can also use our Amazon.com or NewEgg.com shopping links when making online purchases or contribute to Phoronix through a PayPal tip.