Re: [RESEND][RFC] BFQ I/O Scheduler

From: Jens Axboe
Date: Thu Apr 17 2008 - 04:31:05 EST


On Thu, Apr 17 2008, Paolo Valente wrote:
> Jens Axboe ha scritto:
> >>Actually, in the worst case among our tests, the aggregate throughput
> >>with 4k sectors was ~ 20 MB/s, hence the time for 4k sectors ~ 4k * 512
> >>/ 20M = 100 ms.
> >>
> >
> >That's not worse case, it is pretty close to BEST case.
> Yes. 100 ms is just the worst case among our tests with 4k, but these
> tests are limited to not much more than simultaneous sequential reads.
> >Worst case is 4k
> >of sectors, with each being a 512b IO and causing a full stroke seek.
> >For that type of workload, even a modern sata hard drive will be doing
> >500kb/sec or less. That's rougly a thousand sectors per seconds, so ~4
> >seconds worst case for 4k sectors.
> >
> In my opinion, the time-slice approach of cfq is definitely better
> suited than the (sector) budget approach for this type of workloads. On
> the opposite end, the price of time-slices is unfairness towards, e.g.,
> threads doing sequential accesses. In bfq we were mainly thinking about
> file copy, ftp, video streaming and so on. I was not able to find a good
> solution for both types of workloads.

Which is fine, nothing wrong with a scheduler tuned for a specific
workload. High lighting the short comings are also interesting :-)

> BTW, there is also another possibility. The internal scheduler of bfq
> may be used to schedule time-slices instead of budgets. By doing so, the
> O(1) instead of O(N) delay/jitter would still be guaranteed (as it is
> probably already clear, bfq is obtained from cfq by just turning slices
> into budgets, and the Round Robin-like scheduling policy into a Weighted
> Fair Queueuing one).

I was thinking about that too. Generally I've been opposed to doing
scheduling decisions on anything but time, since that is always
relevant. When to hand out slices and to what process, that algorithm is
really basic in CFQ and could do with an improvement.

--
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/