I/O scheduler (aka dsched)

Antonio Huete Jimenez ahuete.devel at gmail.com
Sun Apr 11 13:13:50 PDT 2010


Hi,

I've checked out the branch and done some test for the past two days and
although I didn't go further than some basic tests (music playing under
heavy I/O, recursive finds, X programs startup also during high I/O
activity, etc) and some other more intensive (bonnie++ and what's more
important hammer reblocking) I'd like to share my subjective good
feelings about it.

For example, during a hammer cleanup a music play isn't jumpy anymore,
and the applications like firefox are quite happier than they went
before under certain load. On the other hand I've had some unexpected
freezes (machine not responding to any input from the mouse and
keyboard) but I think my the hardware can take the blame of that,
because I have not been able to reproduce another box. Also, if you
switch the scheduler 5 or 6 times from/to fq and noop, a panic is
triggered related to a TAILQ handling on cleanup.

Besides that I would like to thank Alex for the great effort he's doing
and also encourage people to give the scheduler a try. I would really
like to see this in master soon, disabled by default, so people who are
in the bleeding-edge can benefit from it in the case they want.

For those who would like to try and don't know exactly how to do it,
find below some quick instructions:

a) Switch to master branch, make sure you don't have local changes
before pull and update master branch.
# cd /usr/src                   
# git checkout master
# git pull

b) Add alexh's personal repo to your remotes and update it.
# git remote add leaf_alexh git://leaf.dragonflybsd.org/~alexh/dragonfly.git
# git remote update leaf_alexh       

c) Checkout main scheduler branch and also bring latest changes from master
# git checkout -b iosched-current --no-track leaf_alexh/iosched-current
# git rebase master

d) Build and install everything
# make -j2 buildworld && make -j2 buildkernel KERNCONF=GENERIC
# sudo -E make installkernel KERNCONF=GENERIC && sudo make installworld
&& sudo make upgrade

Hope you enjoy it.

Cheers,
Antonio Huete





More information about the Kernel mailing list