Improve dsched interfaces and implement BFQ disk scheduling policy
Implement reqeust polling feature for dsched: including modification on several disk drivers and dsched framework; Implement BFQ scheduling policy on dsched; Tune and benchmark the BFQ scheduler.
Currently, two disk scheduling policies are implemented on dsched:1) no-op scheduler, which is default and simply implement a FIFO queue which ensures good throughput but may cause starvation; 2) FQ scheduler, which tends to improve the interactivity but some interbench show that it still need improvement to catch up with BFQ and CFQ. Moreover, FQ and no-op are more demonstrations to show how dsched works than complex schedulers focusing on productivity.
BFQ(Budget Fair Queueing) is a fair queuing disk scheduler aiming at interactivity. Compared to its major competitor, Linux's CFQ scheduler, BFQ shows better performance and fairness on many respects and the worst cases performance similar to CFQ's.
In this project, I will: 1) improve dsched interfaces to emulate "request polling" feature of disk drivers; 2) write BFQ scheduler from scratch; 3) tune BFQ scheduler for better performance and benchmark it.
|File name||Size||Date submitted|