Re: [ANNOUNCE] RSDL completely fair starvation free interactive cpu scheduler

From: Willy Tarreau
Date: Sun Mar 04 2007 - 09:37:23 EST


Hi Con !

On Mon, Mar 05, 2007 at 12:49:49AM +1100, Con Kolivas wrote:
> On Monday 05 March 2007 00:25, Gene Heskett wrote:
> > On Sunday 04 March 2007, Con Kolivas wrote:
> > >On Sunday 04 March 2007 23:24, Gene Heskett wrote:
> > >> On Sunday 04 March 2007, Con Kolivas wrote:
> > >> >On Sunday 04 March 2007 22:08, Gene Heskett wrote:
> > >> >> On Sunday 04 March 2007, Con Kolivas wrote:
> > >> >> >This message is to announce the first general public release of
> > >> >> > the "Rotating Staircase DeadLine" cpu scheduler.
> > >> >>
> > >> >> I assume to test this, we select the deadline scheduler?
> > >> >
> > >> >No, only the "deadline" in the name is shared. This is a cpu process
> > >> > scheduler whereas the deadline scheduler you're thinking of is an
> > >> > I/O scheduler. To test this you just patch it in and it replaces the
> > >> > current mainline cpu scheduler (the same way the staircase cpu
> > >> > scheduler in -ck replaces it).
> > >>
> > >> Oh, then I tried to put the -ck1 patch on top of that, and blew the
> > >> tree up. I'd built it the first time with the deadline scheduler as
> > >> the default while I was waiting on your reply.
> > >
> > >Yes, sorry. This is mutually exclusive with the -ck1 patch. It is a
> > > standalone piece of code.
> >
> > I just this instant got it booted, what with building a driver for nvidia
> > and all. I'll let you know what I think in a few hours after I've gotten
> > a feel for it.
>
> Great, thanks.
>
> Just to make it clear. The purpose of this scheduler is at all costs to
> maintain absolute fairness no matter what type of load it is put under. This
> means that if you heavily load up your machine without the use of 'nice' then
> your interactive tasks _will_ slow down proportionately to the amount of cpu
> you use. So doing make -j4 for example will make any other task started in
> taht presence run precisely 1/5th speed, but they will still be responsive,
> have low latency (and audio shouldn't skip for example).
>
> There will be times when the mainline scheduler feels more interactive than
> this scheduler, and that is because it has significant unfairness granted
> towards interactive tasks. This degree of unfairness in an effort to maintain
> interactivity has been criticised and causes problems in certain environments
> with both loss of fairness, relative starvation and is not entirely
> predictable.
>
> This was designed to be robust for any application since linux demands a
> general purpose scheduler design, while preserving interactivity, instead of
> optimising for one particular end use.

Well, I haven't tested it yet, but your design choices please me. As you
know, I've been one of those encountering big starvation problems with
the original scheduler, making 2.6 unusable for me in many situations. I
welcome your work and want to thank you for the time you spend trying to
fix it.

Keep up the good work,
Willy

PS: I've looked at your graphs, I hope you're on the way to something really
better than the 21 first 2.6 releases !

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