Re: [Announce] [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS]

William Lee Irwin III
2007-04-16T16:13:46Z

William Lee Irwin III wrote:
>> The sorts of like explicit decisions I'd like to be made for these are:
>> (1) In a mixture of tasks with varying nice numbers, a given nice number
>> corresponds to some share of CPU bandwidth. Implementations
>> should not have the freedom to change this arbitrarily according
>> to some intention.

On Mon, Apr 16, 2007 at 09:55:14AM -0600, Chris Friesen wrote:
> The first question that comes to my mind is whether nice levels should
> be linear or not. I would lean towards nonlinear as it allows a wider
> range (although of course at the expense of precision). Maybe something
> like "each nice level gives X times the cpu of the previous"? I think a
> value of X somewhere between 1.15 and 1.25 might be reasonable.
> What about also having something that looks at latency, and how latency
> changes with niceness?
> What about specifying the timeframe over which the cpu bandwidth is
> measured? I currently have a system where the application designers
> would like it to be totally fair over a period of 1 second. As you can
> imagine, mainline doesn't do very well in this case.

It's unclear how latency enters the picture as the semantics of nice
levels relevant to such are essentially priority preemption, which is
not particularly easy to mess up. I suppose tests to ensure priority
preemption occurs properly are in order.

I don't really have a preference regarding specific semantics for nice
numbers, just that they should be deterministic and specified somewhere.
It's not really for us to decide what those semantics are as it's more
of a userspace ABI/API issue.

The timeframe is also relevant, but I suspect it's more of a performance
metric than a strict requirement.

-- wli