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