Re: [SHED] Questions.

From: Con Kolivas
Date: Mon Sep 01 2003 - 00:01:37 EST


On Mon, 1 Sep 2003 14:03, Robert Love wrote:
> Look at it like this. Assume we have:
>
> Task A, B, and C at priority 10 (the highest)
> Task D at priority 5
> Tasks E and F at priority 0 (the lowest)
>
> We run them in that order: A, B, C, D, E, then F. And repeat.
> (Actually, within a given priority, the tasks are run round-robin in any
> nonspecific order.. effectively first-come, first-served scheduling).
>
> If [any task] has exhausted its timeslice, it will not run until the
> remaining tasks exhaust their timeslice. Once all tasks have expired,
> we start over.

I hate to keep butting in and saying this but this is not quite what happens.
If a task is considered interactive (a priority boost of 2 or more) and it
uses up a full timeslice then it is checked to see if a starvation limit has
been exceeded by the tasks on the expired array. If it hasn't exceeded the
limit, the interactive task will be rescheduled again ahead of everything
else. ie if A is the only task still considered interactive after using up
it's timeslice the first time it will go

A,B,C,A
before anything else

and if nothing else is interactive it can even go
A,B,C,A,A,A
etc until A is not considered interactive (boost lost) or the starvation limit
is exceeded.

This is not just with my patches; this is Ingo's design.

Con

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