public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Joe deBlaquiere <jadb@redhat.com>
To: yodaiken@fsmlabs.com
Cc: Andrew Morton <andrewm@uow.edu.au>, Nigel Gamble <nigel@nrg.org>,
	linux-kernel@vger.kernel.org,
	linux-audio-dev@ginette.musique.umontreal.ca
Subject: Re: [linux-audio-dev] low-latency scheduling patch for 2.4.0
Date: Mon, 29 Jan 2001 11:23:24 -0600	[thread overview]
Message-ID: <3A75A70C.4050205@redhat.com> (raw)
In-Reply-To: <200101220150.UAA29623@renoir.op.net> <Pine.LNX.4.05.10101211754550.741-100000@cosmic.nrg.org>, <Pine.LNX.4.05.10101211754550.741-100000@cosmic.nrg.org>; <20010128061428.A21416@hq.fsmlabs.com> <3A742A79.6AF39EEE@uow.edu.au> <3A74462A.80804@redhat.com> <20010129084410.B32652@hq.fsmlabs.com>

Good morning world! :o)

yodaiken@fsmlabs.com wrote:

> Only if your RTLinux application is running. In other words, you cannot
> commit more than 100% of cpu cycle time and expect to deliver.
> I think one of the common difficulties with realtime is that time-shared
> systems with virtual memory make people used to elastic resource
> limits and real-time has unforgiving time limits.
> 
> 

	The problem I see is not one of cpu 'overcommit' but of 'critical 
sections' in the driver code. I really like the preemptive model, but it 
would seem to me that there needs to be a way to cooperate with some of 
the driver code. Allowing the driver a brief exclusive time share does 
certainly have latency implications, but breaking drivers can crash 
things pretty quickly (If you're running a program XIP from flash and a 
RT interrupt leaves the flash in a unreadable state, boom!).
	If the answer is to run the 'critical' driver code as a RT thread, I can 
live with that, but there should be a clear policy and mechanism in 
place to handle it.

> 
> 
> Or what is the tradeoff or whether  a deadlock will follow. 
> step 1: memory manager thread frees a few pages and is courteous
> step 2: bunch of thrashing and eventually all processes stall
> step 3: go to step 1
> 
> alternative
> step 1: memory manager thread frees enough pages for some processes to
>         advance to termination
> step 2: all is well
> 
> and make up 100 similar scenarios. And this is why "preemptive"
> OS's tend to add such abominations as "priority inheritance" which 
> make failure cases rarer and harder to diagnose or complex schedulers
> that spend a significant fraction of cpu time trying to figure out
> what process should advance or ...
> 
> 

It doesn't matter how you do it, the cooperative model eventually starts 
to feel like Windoze3.1 in the extreme case, but even so, it was much 
more multithreaded than DOS. Of course, the Right Thing (TM) is to do 
away with the cooperative model. But even in a preemptive model, there's 
no reason to have code like

while (!done)
{
	done = check_done();
}

when you can have:

while (!done)
{
	yield();
	done = check_done();
}

being preemptive and being cooperative aren't mutually exclusive.

Borrowing your sports car / delivery van metaphor, I'm thinking we could 
come up with something along the lines of a BMW 750iL... room for six 
and still plenty of uumph.

Cheers,

Joe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

  reply	other threads:[~2001-01-29 17:21 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-07  2:53 low-latency scheduling patch for 2.4.0 Andrew Morton
2001-01-11  3:12 ` [linux-audio-dev] " Jay Ts
2001-01-11  3:22   ` Cort Dougan
2001-01-11 12:38     ` Alan Cox
2001-01-11 11:30   ` Andrew Morton
2001-01-11  5:19     ` David S. Miller
2001-01-11 13:57       ` Daniel Phillips
2001-01-11 20:55       ` Nigel Gamble
2001-01-11 21:31         ` David S. Miller
2001-01-15  5:27           ` george anzinger
2001-01-12 13:30         ` Andrew Morton
2001-01-12 15:11           ` Tim Wright
2001-01-12 22:30             ` Nigel Gamble
2001-01-13  1:01             ` Andrew Morton
2001-01-15 19:46               ` Tim Wright
2001-01-12 22:46           ` Nigel Gamble
2001-01-12 23:08           ` george anzinger
2001-01-21  0:05           ` yodaiken
2001-01-22  0:54             ` Nigel Gamble
2001-01-22  1:49               ` Paul Barton-Davis
2001-01-22  2:21                 ` Nigel Gamble
2001-01-22  3:31                   ` J Sloan
2001-01-28 13:14                   ` yodaiken
2001-01-28 14:07                     ` Bill Huey
2001-01-28 14:26                       ` Andrew Morton
2001-01-29  5:02                       ` yodaiken
2001-01-28 14:19                     ` Andrew Morton
2001-01-28 16:17                       ` Joe deBlaquiere
2001-01-29 15:44                         ` yodaiken
2001-01-29 17:23                           ` Joe deBlaquiere [this message]
2001-01-29 17:38                             ` yodaiken
2001-01-29 18:03                               ` Joe deBlaquiere
2001-01-30 15:08                           ` David Woodhouse
2001-01-30 15:44                             ` Joe deBlaquiere
2001-01-30 16:29                               ` Paul Davis
2001-01-30 16:35                                 ` David Woodhouse
2001-01-31  7:55                               ` george anzinger
2001-01-30 16:19                             ` David Woodhouse
2001-02-01 12:40                               ` Pavel Machek
2001-02-01 22:33                                 ` David Woodhouse
2001-02-02  4:17                                   ` Joe deBlaquiere
2001-01-30 20:51                             ` yodaiken
2001-01-30 21:00                               ` David Woodhouse
2001-01-29 22:08                         ` Pavel Machek
2001-01-29 22:31                         ` Roger Larsson
2001-01-29 23:46                           ` Joe deBlaquiere
2001-01-30 15:08                       ` David Woodhouse
2001-01-12 13:21       ` Andrew Morton
2001-01-13  2:45     ` Jay Ts
2001-01-21  0:10       ` yodaiken
2001-01-26  9:14         ` Pavel Machek
2001-01-13 18:11     ` video drivers hog pci bus ? [was:[linux-audio-dev] low-latency scheduling patch for 2.4.0] Jörn Nettingsmeier
2001-01-14 11:35 ` low-latency scheduling patch for 2.4.0 Andrew Morton
2001-01-14 14:38   ` Gregory Maxwell
2001-01-15 10:59     ` Andrew Morton

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=3A75A70C.4050205@redhat.com \
    --to=jadb@redhat.com \
    --cc=andrewm@uow.edu.au \
    --cc=linux-audio-dev@ginette.musique.umontreal.ca \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nigel@nrg.org \
    --cc=yodaiken@fsmlabs.com \
    /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