[GSoC] brief on BFQ scheduling policy
Brills Peng
brillsp at gmail.com
Wed Aug 31 07:51:39 PDT 2011
Hi All,
Alex Hornung has merged the BFQ scheduling policy into the master branch
(see [1]). 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!
I. Documentations
1. Result of benchmarks
You can find a detailed result of a set of benchmarks at [2]. 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 [3].
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 [4] or [5], 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
may deadlock.
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
concurrency.
[1] http://leaf.dragonflybsd.org/mailarchive/commits/2011-08/msg00140.html
[2] http://leaf.dragonflybsd.org/~brillsp/bfq_bench/bfq_bench.html
[3] http://leaf.dragonflybsd.org/~brillsp/plot_interbench.tar.gz
[4] http://leaf.dragonflybsd.org/~brillsp/bfq_doc/bfq.html
[5] sys/kern/dsched/bfq/doc/bfq.viki
--
Regards,
Brills Peng
More information about the Kernel
mailing list