[gsoc] BFQ scheduler: progress (and problem encountered)
Brills Peng
brillsp at gmail.com
Wed Jul 6 07:34:49 PDT 2011
Hello,
According to the plan[1] I posted earlier, I have completed the request
polling emulation part and the first version of BFQ scheduler.
The code is at [2], and I am currently working on branch dsched_BFQ.
The first version is implemented according to the algorithm on the BFQ
tech report[3] written by Paolo Valente (the inventer of BFQ). However,
that report have hidden some details that may be possible optimizing
points, such as:
- Dynamically changing maximum budget (currently hard wired in bfq.h)
- Dynamically changing anticipatory waiting time (currently hard wired
in bfq.h)
- A good selecting function which can distinct between sync and async
requests from one process(currently a simple FIFO per process)
I will have to take a look at the implementation on Linux and add those
features into our BFQ in next versions (I will take the ideas but the code).
Currently, there is a known bug in the first version, under the vkernel:
Whenever I "cat"ing a large file (ls -R / > list; cat list), the system
will stick a wile and has the following debug line printed:
wkt_acquire: stuck: td 0x54479c50 td->td_flags 00800821
I do not know if it means that the system deadlocks on that situation,
but I looked into my code and find nowhere to deadlock. Can anybody help
me and give me some suggestions on it?
[1] http://leaf.dragonflybsd.org/mailarchive/kernel/2011-04/msg00060.html
[2] git://leaf.dragonflybsd.org/~brillsp/dragonfly.git
[3] http://algo.ing.unimo.it/people/paolo/disk_sched/bfq-techreport.pdf
---
Regards,
Brills Peng
More information about the Kernel
mailing list