Re: [PATCH] cfq + io priorities

From: Jens Axboe
Date: Sun Nov 09 2003 - 06:40:14 EST


On Sun, Nov 09 2003, Guillaume Chazarain wrote:
> > A process has an assigned io nice level, anywhere from 0 to 20. Both of
>
> OK, I ask THE question : why not using the normal nice level, via
> current->static_prio ?
> This way, cdrecord would be RT even in IO, and nice -19 updatedb would have
> a minimal impact on the system.

I don't want to tie io prioritites to cpu priorities, that's a design
decision.

> > these end values are "special" - 0 means the process is only allowed to
> > do io if the disk is idle, and 20 means the process io is considered
>
> So a process with ioprio == 0 can be forever starved. As it's not

Yes

> done this way for nice -19 tasks (unlike FreeBSD), wouldn't it be
> safer to give a very long deadline to ioprio == 0 requests ?

ioprio == 0 means idle IO. It follows from that that you can risk
infinite starvation if other io is happening. Otherwise it would not be
idle io :-)

CFQ doesn't assign request deadlines. That would be another way of
handling starvation.

> Thanks for making something I have been dreaming of for a long time :)

Me too :)

--
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/