[Devel] Re: [patch 0/4] [RFC] Another proportional weight IO controller
Vivek Goyal
vgoyal at redhat.com
Tue Nov 18 11:47:01 PST 2008
On Tue, Nov 18, 2008 at 08:12:08PM +0100, Jens Axboe wrote:
> On Tue, Nov 18 2008, Fabio Checconi wrote:
> > > From: Vivek Goyal <vgoyal at redhat.com>
> > > Date: Tue, Nov 18, 2008 09:07:51AM -0500
> > >
> > > On Tue, Nov 18, 2008 at 01:05:08PM +0100, Fabio Checconi wrote:
> > ...
> > > > I have to think a little bit on how it would be possible to support
> > > > an option for time-only budgets, coexisting with the current behavior,
> > > > but I think it can be done.
> > > >
> > >
> > > IIUC, bfq and cfq are different in following manner.
> > >
> > > a. BFQ employs WF2Q+ for fairness and CFQ employes weighted round robin.
> > > b. BFQ uses the budget (sector count) as notion of service and CFQ uses
> > > time slices.
> > > c. BFQ supports hierarchical fair queuing and CFQ does not.
> > >
> > > We are looking forward for implementation of point C. Fabio seems to
> > > thinking of supporting time slice as a service (B). It seems like
> > > convergence of CFQ and BFQ except the point A (WF2Q+ vs weighted round
> > > robin).
> > >
> > > It looks like WF2Q+ provides tighter service bound and bfq guys mention
> > > that they have been able to ensure throughput while ensuring tighter
> > > bounds. If that's the case, does that mean BFQ is a replacement for CFQ
> > > down the line?
> > >
> >
> > BFQ started from CFQ, extending it in the way you correctly describe,
> > so it is indeed very similar. There are also some minor changes to
> > locking, cic handling, hw_tag detection and to the CIC_SEEKY heuristic.
> >
> > The two schedulers share similar goals, and in my opinion BFQ can be
> > considered, in the long term, a CFQ replacement; *but* before talking
> > about replacing CFQ we have to consider that:
> >
> > - it *needs* review and testing; we've done our best, but for sure
> > it's not enough; review and testing are never enough;
> > - the service domain fairness, which was one of our objectives, requires
> > some extra complexity; the mechanisms we used and the design choices
> > we've made may not fit all the needs, or may not be as generic as the
> > simpler CFQ's ones;
> > - CFQ has years of history behind and has been tuned for a wider
> > variety of environments than the ones we've been able to test.
> >
> > If time-based fairness is considered more robust and the loss of
> > service-domain fairness is not a problem, then the two schedulers can
> > be made even more similar.
>
> My preferred approach here would be, in order or TODO:
>
> - Create and test the smallish patches for seekiness, hw_tag checking,
> and so on for CFQ.
> - Create and test a WF2Q+ service dispatching patch for CFQ.
>
Hi Jens,
What do you think about "hierarchical" and cgroup part of BFQ patch? Do
you intend to incorporate/include that piece also or do you think that's
not the way to go for IO controller stuff.
Thanks
Vivek
> and if there are leftovers after that, we could even conditionally
> enable some of those if appropriate. I think the WF2Q+ is quite cool and
> could be easily usable as the default, so it's definitely a viable
> alternative.
>
> My main goal here is basically avoiding addition of Yet Another IO
> scheduler, especially one that is so closely tied to CFQ already.
>
> I'll start things off by splitting cfq into a few files similar to what
> bfq has done, as I think it makes a lot of sense. Fabio, if you could
> create patches for the small behavioural changes you made, we can
> discuss and hopefully merge those next.
>
> --
> Jens Axboe
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list