Query : What's the best way to handle scheduling of I/O based processes?

Chad Page (cpage@shell1.best.com)
Mon, 31 Jul 1995 15:58:47 -0700 (PDT)


A couple of weeks ago, I posted a patch to ll_rw_blk.c which
decremented current->count whenever a block I/O request went out. It
appears to work as intended (I recently got an e-mail from someone who
has had success with it), and I'd like to figure out a way to be able to
adjust how I/O bound processes are scheduled.

My idea is a ksched() system call, which can adjust I/O penalties
(which decrease priority either outright, or decrease current->counter for
paging and standard block I/O) :

1. Globally (a standard penalty value, must be run from root/setuid)
2. For a single process (with uid checks)
3. For a user (this will require a bit more hacking), at login.

This should probably be manipulated from root mostly, IMO.

I'd like to hear feedback on all of this... anything I do in
terms of scheduling will be posted to ftp.best.com:/pub/cpage/ksched, and
I'll test out having a .plan for the first time :) Thanks!

- Chad