Re: [Lse-tech] Re: Real Time Runqueue

george anzinger
2001-11-19T18:33:27Z

Andi Kleen wrote:
>
> On Fri, Nov 16, 2001 at 04:32:24PM -0800, Mike Kravetz wrote:
> > The reason I ask is that we went through the pains of a separate
> > realtime RQ in our MQ scheduler. And yes, it does hurt the common
> > case, not to mention the extra/complex code paths. I was hoping
> > that someone in the know could enlighten us as to how RT semantics
> > apply to SMP systems. If the semantics I suggest above are required,
> > then it implies support must be added to any possible future
> > scheduler implementations.
>
> It seems a lot of applications/APIs do not care about global RT semantics,
> but about RT semantics for groups of threads or processes (e.g. java
> or ada applications). Linux currently simulates this only for root
> and with a global runqueue.

Why do you say only root? Since the schedule type and priority are
inherited one only needs to be root to set the progenitors real time
priority. Also, a programs priority/ schedule type can be set by
another (root) program without the target program being root. I
routinely set inetd to real time, for example, to let telnet sessions
run at real time.

> I don't think it makes too much sense to have
> an global rt queue on a multi processor system, but there should be some
> way to define "scheduling groups" where rt semantics are followed inside.

Still, the customer is king.

> Such a scheduling group could be a clone flag or default to CLONE_VM for
> example for compatibility. A scheduling group would also make it possible
> to support simple rt semantics for thread groups as non root. Then one
> could run a rt queue per scheduling group, and simulate global rt run queue
> or per cpu rt run queue as needed by appropiate setup.

My first thought is that this is fairly high overhead to put in the
schedule path. May be if I knew more....

--
George george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Real time sched: http://sourceforge.net/projects/rtsched/