![]() | |||||||||||||
Messages in this thread |
At 10:40 AM 1/8/2006 +1100, Peter Williams wrote:
>Mike Galbraith wrote:
>>> One slight variation of your scheme would be to measure the average
>>> length of the CPU runs that the task does (i.e. how long it runs
>>> without voluntarily relinquishing the CPU) and not allowing them to
>>> defer the shift to the expired array if this average run length is
>>> greater than some specified value. The length of this average for each
>>> task shouldn't change with system load. (This is more or less saying
>>> that it's ok for a task to stay on the active array provided it's
>>> unlikely to delay the switch between the active and expired arrays for
>>> very long.)
>>
>>Average burn time would indeed probably be a better metric, but that
>>would require doing bookkeeping is the fast path.
>
>Most of the infrastructure is already there and the cost of doing the
>extra bits required to get this metric would be extremely small. The
>hardest bit would be deciding on the "limit" to be applied when deciding
>whether to let a supposed interactive task stay on the active array.
Yeah, I noticed run_time when I started implementing my first cut. (which
is of course buggy)
>By the way, it seems you have your own scheduler versions? If so are you
>interested in adding them to the collection in PlugSched?
No, I used to do a bunch of experimentation in fairness vs interactivity,
but they all ended up just trading one weakness for an other.
-Mike
-
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/
| ||||||||||||
| Last update: 2006-01-08 05:55 [from the cache] ©2003-2008 | |||||||||||||