DragonFly kernel List (threaded) for 2011-07
[gsoc] BFQ scheduler: progress (and problem encountered)
According to the plan I posted earlier, I have completed the request
polling emulation part and the first version of BFQ scheduler.
The code is at , and I am currently working on branch dsched_BFQ.
The first version is implemented according to the algorithm on the BFQ
tech report 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
- 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?