Re: [PATCH] livelock in elevator scheduling

kumon
2000-11-21T12:00:59Z

Jens Axboe writes:
> > Problem:
> > Current elevator_linus() traverses the I/O requesting queue from the
> > tail to top. And when the current request has smaller sector number
> > than the request on the top of queue, it is always placed just after
> > the top.
> > This means, if requests in some sector range are continuously
> > generated, a request with larger sector number is always places at the
> > last and has no chance to go to the front. e.g. it is not scheduled.
>
> Believe it or not, but this is intentional. In that regard, the
> function name is a misnomer -- call it i/o scheduler instead :-)

I never believe it intentional. If it is true, the current kernel
will be suffered from a kind of DOS attack. Yes, actually I'm a
victim of it.

By Running ZD's ServerBench, not only the performance down, but my
machine blocks all commands execution including /bin/ps, /bin/ls... ,
and those are not ^C able unless the benchmark is stopped. Those
commands are read from disks but the requests are wating at the end of
I/O queue, those won't be executed.

Anyway, I'll try your patch.

--
Computer Systems Laboratory, Fujitsu Labs.
kumon@flab.fujitsu.co.jp