[GSoC] brief on BFQ scheduling policy
brillsp at gmail.com
Wed Aug 31 07:51:39 PDT 2011
Alex Hornung has merged the BFQ scheduling policy into the master branch
(see ). As mentioned in the commit log, the current version of BFQ is
highly experimental and work-in-progress, but in case that anyone wants
to try it out, I think a brief introduction is necessary.
*NOTE*: Please at least read section II before trying the BFQ scheduler!
1. Result of benchmarks
You can find a detailed result of a set of benchmarks at . The result
shows not only the performance of BFQ, but also that of FQ and noop,
though we have only two machines to run those benches. I have also
written a simple script to visualize the result of interbench, at .
If you are interested in trying new toys, you may also want to have a
compare them to the old ones, with some cool histograms (unfortunately,
the new toy may disappoint you at current status).
2. Implementation details & tuning guide
You can find it at  or , it maybe a little long, but for who have
no interests on those details, section 4 (Tuning) and 6 (Known Bugs &
Bottleneck) are enough.
A man page bfq(4) is also created. It contains some general instructions
about how to switch to BFQ and the tuning section in the documentation.
II. Known Bugs & Bottlenecks
a. [BUG] When switching to another dsched policy from BFQ, the system
b. Currently, too many operations are serialized (by a helper thread
with lwkt messages) and thus the performance is not so ideal. Besides,
it is not tested on a large number of machines. It is *not* recommended
to use this version in a productivity environment.
III. Future plans
Since BFQ is a bit far from a reliable and high-proformance dsched
policy, I will continue working on it, outside the GSoC time frame.
As the first step, I plan to refactor the code, rearrange all the
synchronizations and try to use as few locks as possible to ensure
More information about the Kernel