Re: Bandwidth Allocations under CFQ I/O Scheduler

From: Paulo Marques
Date: Wed Oct 18 2006 - 09:51:29 EST


Jens Axboe wrote:
[...]
Precisely, hence CFQ is now based on the time metric. Given larger
slices, you can mostly eliminate the impact of other applications in the
system.

Just one thought: we can't predict reliably how much time a request will
take to be serviced, but we can account the time it _took_ to service a
request.

If we account the time it took to service requests for each process, and
we have several processes with requests pending, we can use the same algorithm we would use for a large time slice algorithm to select the process to service.

This should make it as fair over time as a large time slice algorithm and doesn't need large time slices, so latencies can be kept as low as required.

However, having a small time slice will probably help the hardware coalesce several request from the same process that are more likely to be to nearby sectors, and thus improve performance.

I'm leaving out the details, like we should find a way to make the "fairness" work over a time window and not over the entire process lifespan, maybe by using a sliding window over the last N seconds of serviced requests to do the accounting or something.

--
Paulo Marques - www.grupopie.com

"The face of a child can say it all, especially the
mouth part of the face."

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