Messages in this thread | | | Date | Wed, 18 Oct 2006 14:51:05 +0100 | From | Paulo Marques <> | Subject | Re: Bandwidth Allocations under CFQ I/O Scheduler |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |