public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC] Scheduler issue 1, RT tasks ...
@ 2001-12-20 21:11 Davide Libenzi
  2001-12-20 22:25 ` george anzinger
  0 siblings, 1 reply; 30+ messages in thread
From: Davide Libenzi @ 2001-12-20 21:11 UTC (permalink / raw)
  To: lkml


I'd like to have some comments about RT tasks implementation in a SMP
system because POSIX it's not clear about how the priority rules apply to
multiprocessor systems.
The Balanced Multi Queue Scheduler ( BMQS, http://www.xmailserver.org/linux-patches/mss-2.html )
i'm working on tries to keep CPU schedulers the more independent as
possible and currently implements two kind of RT tasks, local one and
global ones.
Local RT tasks apply POSIX priority rules inside the local CPU, that means
that an RT task running on CPU0 cannot preempt another task ( being it
normal or RT ) on CPU1. This keeps schedulers interlocking very low
because of the very fast path in reschedule_idle() ( no multi lock
acquisition, CPU queue loops, etc...).
Global RT tasks, that live in a separate run queue, have the ability to
preempt remote CPU and this can lead ( in the unfortunate case that the
last CPU running the RT task is running another RT task ) to an higher
cost in reschedule_idle().
The check for a global RT task selection is done in a very fast way before
checking the local queue :

    if (!list_empty(&runqueue_head(RT_QID)))
        goto rt_queue_select;
rt_queue_select_back:

and this does not affect the scheduler latency at all.
On the contrary, by having a separate queue for global RT tasks, can
improve it in high run queue load cases.
The local/global RT task selection is done with setscheduler() with a new
( or'ed ) flag SCHED_RTGLOBAL, and this means that the default is RT task
local.
I'd like to have comments on this before jumping to the next Scheduler
issue ( balancing mode ).




- Davide



^ permalink raw reply	[flat|nested] 30+ messages in thread
* Re: [RFC] Scheduler issue 1, RT tasks ...
@ 2001-12-28  9:45 Martin Knoblauch
  2001-12-29  9:12 ` george anzinger
  0 siblings, 1 reply; 30+ messages in thread
From: Martin Knoblauch @ 2001-12-28  9:45 UTC (permalink / raw)
  To: linux-kernel

> Re: [RFC] Scheduler issue 1, RT tasks ...
> 
> >
> > Right, that was my question. George says, in your words, "for better
> 
> > standards compliancy ..." and I want to know why you guys think
> that.
> 
> The thought was that if someone need RT tasks he probably need a very
> low
> latency and so the idea that by applying global preemption decisions
> would
> lead to a better compliancy. But i'll be happy to ear that this is
> false
> anyway ...
> 

 without wanting to start a RT flame-fest, what do people really want
when they talk about RT in this [Linux] context:

- very low latency
- deterministic latency ("never to exceed")
- both
- something completely different

Thanks
Martin
-- 
+-----------------------------------------------------+
|Martin Knoblauch                                     |
|-----------------------------------------------------|
|http://www.knobisoft.de/cats                         |
|-----------------------------------------------------|
|e-mail: knobi@knobisoft.de                           |
+-----------------------------------------------------+

^ permalink raw reply	[flat|nested] 30+ messages in thread
* Re: [RFC] Scheduler issue 1, RT tasks ...
@ 2001-12-29 19:02 Dieter Nützel
  2001-12-29 21:00 ` Andrew Morton
  2001-12-29 22:24 ` Davide Libenzi
  0 siblings, 2 replies; 30+ messages in thread
From: Dieter Nützel @ 2001-12-29 19:02 UTC (permalink / raw)
  To: george anzinger
  Cc: Martin Knoblauch, Davide Libenzi, Robert Love, Linux Kernel List

Martin Knoblauch wrote:
> 
> > Re: [RFC] Scheduler issue 1, RT tasks ...
> >
> > >
> > > Right, that was my question. George says, in your words, "for better
> >
> > > standards compliancy ..." and I want to know why you guys think
> > that.
> >
> > The thought was that if someone need RT tasks he probably need a very
> > low latency and so the idea that by applying global preemption decisions
> > would lead to a better compliancy. But i'll be happy to ear that this is
> > false anyway ...
> >
> 
>  without wanting to start a RT flame-fest, what do people really want
> when they talk about RT in this [Linux] context:
> 
> - very low latency
> - deterministic latency ("never to exceed")
> - both
> - something completely different
> 
> All of the above from time to time and user to user.  That is, some
> folks want one or more of the above, some folks want more, some less. 
> What is really up?  Well they have a job to do that requires certain
> things.  Different jobs require different capabilities.  It is hard to
> say that any given system will do a reasonably complex job with out
> testing.  For example we may have the required latency but find the
> system fails because, to get the latency, we preempted another task that
> was (and so still is) in the middle of updating something we need to
> complete the job.

So George what direction should I try for some tests?
2.4.17 plus your and Robert's preempt plus lock-break?
Add your high-res-timers, rtscheduler or both?
Do they apply against 2.4.17/2.4.18-pre1?
A combination of the above plus Davide's BMQS?

I ask because my MP3/Ogg-Vorbis hiccup during dbench isn't solved anyway.
Running 2.4.17 + preempt + lock-break + 10_vm-21 (AA).
Some wisdom?

Thank you for all your work and
			Happy New Year

-Dieter
-- 
Dieter Nützel
Graduate Student, Computer Science

University of Hamburg
Department of Computer Science
@home: Dieter.Nuetzel@hamburg.de

^ permalink raw reply	[flat|nested] 30+ messages in thread
[parent not found: <200112291907.LAA25639@messenger.mvista.com>]

end of thread, other threads:[~2002-01-01 18:55 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-12-20 21:11 [RFC] Scheduler issue 1, RT tasks Davide Libenzi
2001-12-20 22:25 ` george anzinger
2001-12-20 22:21   ` Momchil Velikov
2001-12-20 22:57     ` Davide Libenzi
2001-12-21 17:00       ` Mike Kravetz
2001-12-21 17:19         ` Davide Libenzi
2001-12-21 17:33           ` Mike Kravetz
2001-12-21 18:29             ` Davide Libenzi
2001-12-24  0:18         ` Victor Yodaiken
2001-12-24  1:31           ` Davide Libenzi
2001-12-24  5:33             ` Victor Yodaiken
2001-12-24 18:52               ` Davide Libenzi
2001-12-27  3:01                 ` Victor Yodaiken
2001-12-27 17:41                   ` Davide Libenzi
2001-12-28  0:05                     ` Victor Yodaiken
2001-12-28  0:48                       ` Davide Libenzi
2001-12-20 22:36   ` Davide Libenzi
2001-12-24  0:19     ` Victor Yodaiken
2001-12-24  1:20       ` Davide Libenzi
2001-12-27  3:42         ` Victor Yodaiken
2001-12-27 17:48           ` Davide Libenzi
  -- strict thread matches above, loose matches on Subject: below --
2001-12-28  9:45 Martin Knoblauch
2001-12-29  9:12 ` george anzinger
2001-12-29 19:02 Dieter Nützel
2001-12-29 21:00 ` Andrew Morton
2001-12-29 22:24 ` Davide Libenzi
     [not found] <200112291907.LAA25639@messenger.mvista.com>
2001-12-30 10:01 ` george anzinger
2001-12-30 19:54   ` Dieter Nützel
2001-12-31 13:56     ` george anzinger
2002-01-01 18:55       ` Dieter Nützel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox