Complete documentation
|
Tuning and benchmarking BFQ
For detailed information, please see: |
|
Add features into BFQ scheduler
|
|
Merge B-WF^2Q+ into BFQ scheduler
The first version of BFQ has been committed into the repository. this version is implemented according to the algorithm on the BFQ tech report. However, that report have hidden some details that may be possible optimizing points, such as:
|
|
Implement B-WF^2Q+ queueing algorithm
B-WF^2Q+ queueing algorithm is used to select next thread to be served, it uses augmented rb-tree to index all threads. This step includes:
|
|
Test request polling feature
Since the request polling emulation is implemented, some tests is needed to ensure it works as I expect and can provide enough functions to the BFQ scheduler. Some additional issues that I may encounter when implementing BFQ should be considered now. One of them is how to realize the anticipatory tricks: a dequeue() call will block (or simply return) when:
I will adjust the request polling FIFO policy to an anticipatory FIFO policy when I figure out a solution. |
|
Implement request polling emulation on dsched
When considering the BFQ scheduler as a blackbox, it needs two interfaces: 1) by which bios get pushed into BFQ; 2) by which the driver poll bios from BFQ. We have to implement the latter one, at least make an effective emulation of driver polling. To emulate request polling, I will add interfaces for dsched to support a scheduling policy register its "dequeue()" functions, which will get called when an emulation of request polling happens. A specific biodone function will be implemented for the scheduling policy, which will call the registered function when the disk's TCQ may be not full. |
Note: this timeline may change during as the project goes on.
Revised on July, 14th
| Week 1-3 | Implement request polling emulation on dsched. | [DONE] |
| Week 4 | Test request polling feature. | [DONE] |
| Week 5-6 | Implement B-WF^2Q+ queueing algorithm. | [DONE] |
| Week 7-8 | Implement BFQ main algorithm. | [DONE] |
| Mid-term evaluation (July 17th): request polling and BFQ scheduler draft code will be ready. | ||
| Merge B-WF^2Q+ into BFQ scheduler. | [DONE] | |
| Week 9-10 | Add features into BFQ scheduler. | [DONE] |
| Week 10-12 | Tune and benchmark BFQ scheduler and the AS scheduler | [DONE] |
| Week 13-14 | Complete documentation. | [Working] |
| Firm pencil-down date (August 26th): All codes and documentations will be submitted. | ||