public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Douglas Niehaus <niehaus@ittc.ku.edu>
To: Chris Friesen <cfriesen@nortel.com>
Cc: Ted & Syauchen Baker <baker.tlh@comcast.net>,
	"'Peter Zijlstra'" <a.p.zijlstra@chello.nl>,
	"'Henrik Austad'" <henrik@austad.us>,
	"'LKML'" <linux-kernel@vger.kernel.org>,
	"'Ingo Molnar'" <mingo@elte.hu>,
	"'Bill Huey'" <billh@gnuppy.monkey.org>,
	"'Linux RT'" <linux-rt-users@vger.kernel.org>,
	"'Fabio Checconi'" <fabio@gandalf.sssup.it>,
	"'James H. Anderson'" <anderson@cs.unc.edu>,
	"'Thomas Gleixner'" <tglx@linutronix.de>,
	"'Ted Baker'" <baker@cs.fsu.edu>,
	"'Dhaval Giani'" <dhaval.giani@gmail.com>,
	"'Noah Watkins'" <jayhawk@soe.ucsc.edu>,
	"'KUSP Google Group'" <kusp@googlegroups.com>
Subject: Re: RFC for a new Scheduling policy/class in the Linux-kernel
Date: Tue, 14 Jul 2009 02:44:52 -0500	[thread overview]
Message-ID: <4A5C3774.6090901@ittc.ku.edu> (raw)
In-Reply-To: <4A5C3361.70007@nortel.com>


Chris Friesen wrote:
> Douglas Niehaus wrote:
>
>   
>>      (1.1) Will the use of system services (system calls) by RT threads 
>> need to be explicitly supported by, perhaps, explicitly making the 
>> schedulers of *other* threads also using those system calls aware of 
>> that and take it into account to make those other tasks non-preemptible 
>> while holding system call related locks.
>>
>>      (1.2) Can Linux SMP ever support this in an acceptable manner since 
>> locks associated with systems services are shared across CPU boundaries. 
>> THus, I can isolate a set of RT tasks on a CPU easily, and they are well 
>> isolated and can run under strict predictability, *until they use a 
>> system call that uses a lock*. Then, the system call is an interaction 
>> channel with every other thread on the system using the same system call.
>>     
>
>
> This may be a terminology issue, but I think it would be more correct to
> say that the lock is the interaction channel, not the system call, and
> it is an interaction channel with every other entity on the system using
> the same lock.  Depending on the specific lock, this could be other
> userspace tasks, kernel threads, or even hardware interrupt handlers.
>
>   
Sorry, sloppiness on my part while typing quickly, resulting in the 
terminolgy problem of --- my using the wrong terminology.

Yes, the lock, is the interaction channel.

Admittedly, which locks are the interaction channels is correlated with 
which system services are used by threads, but sometimes more and 
sometimes less strongly correlated.

When I explain it to less expert audiences than this, I tend to talk in 
terms of the system services because they at least know what some of 
them are, while many have no idea what the concurrency control in the 
kernel is. They can fairly easily see that if RT tasks use a range of 
services used by generic Linux tasks, then some interaction between RT 
and non-RT tasks is a result.

Still, no excuses, only explanation. Sorry to have over-simplified to 
this audience.

Thanks for clarifying.
> This goes back to your first question of which system services an RT
> task can use while maintaining schedulability analysis.  Unfortunately
> this may be a moving target, since the exact answer depends on what
> locks are taken in the underlying kernel implementation.
>
> Chris
>   
Yes. This is true and is also the point I was trying to make. When 
talking to people about RT over the years I have observed that it is 
often hard to communicate the full cost of the predictability required 
for RT tasks

Extremely detailed information is required, and getting it can be 
expensive. This is one reason why supporting RT in Linux proper is even 
harder than it first appears.

However, I think that while completely arbitrary use of Linux system 
services by RT tasks is extremely complicated, many RT applications can 
be happy using only a small subset of services, and so various classes 
of applications can be supported successfully with merely extreme 
effort, as opposed to completely insane effort.

It is a really hard problem, no doubt, though.

Doug


  reply	other threads:[~2009-07-14  7:44 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-10 21:50 RFC for a new Scheduling policy/class in the Linux-kernel Henrik Austad
2009-07-11 18:28 ` Peter Zijlstra
2009-07-12  2:40   ` Douglas Niehaus
2009-07-12 15:31     ` Peter Zijlstra
2009-07-13 15:44       ` Raistlin
2009-07-13 16:33         ` Chris Friesen
2009-07-14 10:47           ` Raistlin
2009-07-14 11:03             ` Peter Zijlstra
2009-07-14 18:19               ` Raistlin
2009-07-14 14:48             ` Chris Friesen
2009-07-14 15:19               ` James H. Anderson
2009-07-14 16:31                 ` Peter Zijlstra
2009-07-14 16:54                   ` James H. Anderson
2009-07-14 19:28                     ` Henrik Austad
2009-07-14 19:33                       ` James H. Anderson
2009-07-15 21:53                       ` Ted Baker
2009-07-17  7:40                         ` Henrik Austad
2009-07-17 13:37                           ` Ted Baker
2009-07-15  4:25                     ` Bjoern B. Brandenburg
2009-07-15 20:55                     ` Ted Baker
2009-07-15 21:53                       ` Chris Friesen
2009-07-15 22:34                         ` Ted Baker
2009-07-15 22:39                           ` Dhaval Giani
2009-07-15 23:16                             ` Ted Baker
2009-07-16  8:58                               ` Peter Zijlstra
2009-07-16  9:11                                 ` Peter Zijlstra
2009-07-17  0:32                                 ` Raistlin
2009-07-17  0:43                                 ` Raistlin
2009-07-16 12:17                               ` Raistlin
2009-07-16 23:29                       ` Raistlin
2009-07-18 20:12                         ` Michal Sojka
2009-07-14 17:16                   ` James H. Anderson
2009-07-15 21:19                     ` Ted Baker
2009-07-14 19:54                   ` Raistlin
2009-07-14 16:48               ` Raistlin
2009-07-14 18:24                 ` Chris Friesen
2009-07-14 19:14                   ` Raistlin
2009-07-15 22:14                   ` Ted Baker
2009-07-16  7:17                     ` Henrik Austad
2009-07-16 23:13                       ` Ted Baker
2009-07-17  0:19                         ` Raistlin
2009-07-17  7:31                         ` Henrik Austad
2009-07-16 14:46                     ` Chris Friesen
2009-07-16 22:34                       ` Ted Baker
2009-07-16 23:07                         ` Raistlin
2009-07-15 21:45               ` Ted Baker
2009-07-15 22:12                 ` Chris Friesen
2009-07-15 22:52                   ` Ted Baker
2009-07-17 13:35             ` Giuseppe Lipari
2009-07-13 17:25         ` Peter Zijlstra
2009-07-13 18:14           ` Noah Watkins
2009-07-13 20:13             ` Ted Baker
2009-07-13 21:45               ` Chris Friesen
2009-07-14 11:16                 ` Raistlin
2009-07-15 23:11                 ` Ted Baker
2009-07-16  7:58                   ` Peter Zijlstra
2009-07-16  8:52                     ` Thomas Gleixner
2009-07-16 12:17                     ` Raistlin
2009-07-16 12:59                       ` James H. Anderson
2009-07-16 13:37                         ` Peter Zijlstra
2009-07-16 22:15                     ` Ted Baker
2009-07-16 22:34                       ` Karthik Singaram Lakshmanan
2009-07-16 23:38                         ` Ted Baker
2009-07-17  1:44                           ` Karthik Singaram Lakshmanan
2009-07-16 15:17                   ` Chris Friesen
2009-07-16 21:26                     ` Ted Baker
2009-07-16 22:08                       ` Chris Friesen
2009-07-16 23:54                         ` Ted Baker
2009-07-14  9:15             ` Peter Zijlstra
2009-07-14 19:07               ` Raistlin
2009-07-13 17:28         ` Peter Zijlstra
2009-07-14 19:47           ` Raistlin
     [not found]     ` <002301ca0403$47f9d9d0$d7ed8d70$@tlh@comcast.net>
2009-07-13 23:47       ` Douglas Niehaus
2009-07-14  7:27         ` Chris Friesen
2009-07-14  7:44           ` Douglas Niehaus [this message]
2009-07-12  6:17   ` Henrik Austad
2009-07-13  9:55   ` Raistlin
2009-07-13 10:14     ` Peter Zijlstra
2009-07-13 16:06       ` Raistlin
2009-07-14  8:42         ` Peter Zijlstra
2009-07-14  9:36           ` Raistlin
  -- strict thread matches above, loose matches on Subject: below --
2009-07-16 17:54 Raj Rajkumar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A5C3774.6090901@ittc.ku.edu \
    --to=niehaus@ittc.ku.edu \
    --cc=a.p.zijlstra@chello.nl \
    --cc=anderson@cs.unc.edu \
    --cc=baker.tlh@comcast.net \
    --cc=baker@cs.fsu.edu \
    --cc=billh@gnuppy.monkey.org \
    --cc=cfriesen@nortel.com \
    --cc=dhaval.giani@gmail.com \
    --cc=fabio@gandalf.sssup.it \
    --cc=henrik@austad.us \
    --cc=jayhawk@soe.ucsc.edu \
    --cc=kusp@googlegroups.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox