Messages in this thread | | | Date | Thu, 17 Apr 2008 11:27:55 +0200 | From | Jens Axboe <> | Subject | Re: [RESEND][RFC] BFQ I/O Scheduler |
| |
On Thu, Apr 17 2008, Paolo Valente wrote: > Jens Axboe ha scritto: > > > > > >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. > > > > > Maybe there is also another middle-ground solution. I'll try to sketch > it out: > . use sectors instead of time > . impose a penalty to each thread in proportion to the distance between > its disk requests > . reduce the maximum budget of each thread as a function of this seek > penalty so as to prevent the thread from stealing more than a given time > slice (the simple mechanism to limit per-thread budget is already > implemented in bfq). > > By doing so, both fairness and time isolation should be guaranteed. > Finally, this policy should be safe in that, given the maximum time used > by a seeky thread to consume its maximum budget on a reference disk, the > time used on any faster disk should be shorter. > > Does it seem reasonable?
Not for CFQ, that will stay time based. The problem with #2 above is that it then quickly turns to various heuristics, which is just impossible to tune for general behaviour. Or it just falls apart for other real life situations.
-- Jens Axboe
| |