Re: Real Time Runqueue

Davide Libenzi (davidel@xmailserver.org)
Fri, 16 Nov 2001 16:28:33 -0800 (PST)


On Fri, 16 Nov 2001, Mike Kravetz wrote:

> Suppose you have a 2 CPU system with 4 runnable tasks. 3 of these
> tasks are realtime with the same realtime priority and the other is
> an ordinary SCHED_OTHER task. The task distribution on the runqueues
> looks something like this.
>
> CPU 0 CPU 1
> --------- ---------
> RT Task A RT Task B
> Other Task C RT Task D
>
> Task A and Task B are currently running on the 2 CPUs. Now, Task A
> voluntarily gives up CPU 0 and Task B is still running on CPU 1.
> At this point, Task D should be chosen to run on CPU 0. Correct?
> Isn't this a required RT semantic? I'm curious how you plan on
> accomplishing this.

Well I don't know how RT sematics apply to SMP systems.
The easy solution ( == big common lock ) would be to have a single RT
queue that is checked before the private one.
Anyway, sometime it happens that the cure is worst than the disease and to
solve a corner case you're going to punish common case performances (
Linux is not an RT OS even with that fix ).

- Davide

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