Messages in this thread | | | Date | Wed, 18 Apr 2007 09:23:42 +1000 | From | Peter Williams <> | Subject | Re: [Announce] [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS] |
| |
Matt Mackall wrote: > On Tue, Apr 17, 2007 at 09:01:55AM +0200, Nick Piggin wrote: >> On Mon, Apr 16, 2007 at 11:26:21PM -0700, William Lee Irwin III wrote: >>> On Mon, Apr 16, 2007 at 11:09:55PM -0700, William Lee Irwin III wrote: >>>>> All things are not equal; they all have different properties. I like >>> On Tue, Apr 17, 2007 at 08:15:03AM +0200, Nick Piggin wrote: >>>> Exactly. So we have to explore those properties and evaluate performance >>>> (in all meanings of the word). That's only logical. >>> Any chance you'd be willing to put down a few thoughts on what sorts >>> of standards you'd like to set for both correctness (i.e. the bare >>> minimum a scheduler implementation must do to be considered valid >>> beyond not oopsing) and performance metrics (i.e. things that produce >>> numbers for each scheduler you can compare to say "this scheduler is >>> better than this other scheduler at this."). >> Yeah I guess that's the hard part :) >> >> For correctness, I guess fairness is an easy one. I think that unfairness >> is basically a bug and that it would be very unfortunate to merge something >> unfair. But this is just within the context of a single runqueue... for >> better or worse, we allow some unfairness in multiprocessors for performance >> reasons of course. > > I'm a big fan of fairness, but I think it's a bit early to declare it > a mandatory feature. Bounded unfairness is probably something we can > agree on, ie "if we decide to be unfair, no process suffers more than > a factor of x". > >> Latency. Given N tasks in the system, an arbitrary task should get >> onto the CPU in a bounded amount of time (excluding events like freak >> IRQ holdoffs and such, obviously -- ie. just considering the context >> of the scheduler's state machine). > > This is a slightly stronger statement than starvation-free (which is > obviously mandatory). I think you're looking for something like > "worst-case scheduling latency is proportional to the number of > runnable tasks".
add "taking into consideration nice and/or real time priorities of runnable tasks". I.e. if a task is nice 19 it can expect to wait longer to get onto the CPU than if it was nice 0.
> Which I think is quite a reasonable requirement. > > I'm pretty sure the stock scheduler falls short of both of these > guarantees though. >
Peter -- Peter Williams pwil3058@bigpond.net.au
"Learning, n. The kind of ignorance distinguishing the studious." -- Ambrose Bierce - 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/
| |