I/O scheduler (aka dsched)

Alex Hornung ahornung at gmail.com
Tue Apr 13 00:32:18 PDT 2010

: 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 [...]

Any testing is welcome! I would have expected some more interest (and hence
more testers) as this addresses an issue that many people have experienced,
yet only two or three people have bothered trying it out so far.

: 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.

I've not been able to reproduce any system freezes and I'm not sure why they
would happen in the first place.

On the other hand, I've finally been able to solve the policy switching
issue, and this fix is now committed to my branch (commit
0e9144bec7970967edcd917909472d2dde8db23a). I've tried it by switching about
100 times back and forth and no panic seems to happen anymore.

: [...] 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.

IMHO this should be the way to go, as the impact is virtually non-existent
with the 'noop' policy, which is currently default. Bringing in the code to
master would allow for a wider testing base, as more people might feel
adventurous enough to switch the policy to 'fq' for at least a while.
Just to reiterate: the 'noop' policy just passes the requests through as it
has happened so far, so no breakage is to be expected from just using the
raw iosched with the 'noop' policy.

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

Thanks for providing some instructions!

Alex Hornung

More information about the Kernel mailing list