public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Bill Huey (hui) <bhuey@lnxw.com>
To: Scott Wood <scott@timesys.com>
Cc: Ingo Molnar <mingo@elte.hu>,
	Nick Piggin <nickpiggin@yahoo.com.au>,
	Lee Revell <rlrevell@joe-job.com>, Andrew Morton <akpm@osdl.org>,
	linux-audio-dev@music.columbia.edu, arjanv@redhat.com,
	linux-kernel <linux-kernel@vger.kernel.org>,
	"La Monte H.P. Yarroll" <piggy@timesys.com>
Subject: Re: [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch
Date: Thu, 22 Jul 2004 12:45:13 -0700	[thread overview]
Message-ID: <20040722194513.GA32377@nietzsche.lynx.com> (raw)
In-Reply-To: <20040722185308.GC4774@yoda.timesys>

On Thu, Jul 22, 2004 at 02:53:08PM -0400, Scott Wood wrote:
> On Thu, Jul 22, 2004 at 09:40:34AM +0200, Ingo Molnar wrote:
> > * Scott Wood <scott@timesys.com> wrote:
> > > This sort of substitution is what we did in 2.4, though we made this
> > > type the default and gave the real spinlocks a new name to be used in
> > > those few places where it was really needed.  Of course, this resulted
> > > in a lot of places using a mutex where a spinlock would have been
> > > fine.
> > 
> > what are those few places where a spinlock was really needed?
> 
> Places that inherently cannot sleep, such as inside the scheduler,
> the unthreadable part of the hard IRQ code, inside the mutex
> implementation, etc.

Scott and Ingo,

Drivers that you might have to poll (technically a kind of hardware level
spinlock multi-device concurrency problem... Those special spins need to be
bounded by a preempt_{dis,en}able to prevent deadlocking) for completion since
it can't do an async notify of some sort, the low level timer handling
infrastructure, all places in the scheduler, all child functions/places that
can sleep/block within a non-preemptable critical section must be demoted back
to spinlocks and more stuff. The problem isn't trivial at all. The latter one
on the list is something that requires progressive audit as minor kernel
releases come out.

This is major project. kgdb needs to be ported to it, etc... and other
things that slip my mind right now.

There are also other problem with moving to a largely sleeping mutex
style kernel, dead lock detection becomes sorely needed. Current spinlock
detection methods are probably going to be useless in a system like this.
BSD/OS-FreeBSD have some of these facilites. The TimeSys mutexes have a
read/write lock, akind to BSD/OS shared/exclusive locks, that has a depth
first search cycle detector in them. My background is BSD/OS-FreeBSD.

The problem with FreeBSD is that their project is pretty much crap
in that they have these ego-manics focused on cute little SMP mechanisms
instead of actually doing the hard work of pushing locks down into lower
level subsystems. That's why DragonFly-BSD split from them in addition
to other multipule reasons. They also have tons more class and are nicer,
smarter folks in general. :)

The good thing about this, Linux, is that many of the RTOS issues we're
talking about now have a direct 1:1 relationship to SMP locking issues.
The concurrency issues, in a mathematical manner, are the same. It's not
just the trivial stuff with holding a non-preemptive lock such as BLK, but
in the context of priority inheritance and contention where, I believe,
the simple case use of priority inheritance should be considered a kind
contention overload condition of the overall system.

The general purpose OS folks like FreeBSD and old versions Solaris have a
sort of confused and backward notion of this problem by using priority
inheritance as a substitute for fixing the contention problems in the
first place. They abuse the scheduler to try and a get system that can
respond regularly to priority centric schedulers, but what happens instead
is they spread scheduling irregularities that effect the entire kernel
in unknown, unpredictable and odd ways. RTOS folks are much more sensitive
to the over and inappropriate use of things like this.

Linux is prime for some kind of RTOS conversion in that locks have been
pushed down sufficiently that late/runtime detection logic with simple
priority inheritance would rarely be triggered. That's basically a kind
of lock contention maladaptation. There's a possibility of making Linux
a top-notch RTOS if the right folks where working on that stuff.

Rant over... :)

BTW, this basically turning Linux into a kind of SGI IRIX style system.

> > I'm a bit uneasy about making mutexes the default not due to performance
> > but due to e.g. some hardware being very timing-sensitive. 
> 
> In practice, this didn't turn out to be an issue; most modern
> hardware seems to be pretty tolerant of that (and you already have to
> deal with things like interrupts getting in the way), and drivers
> which do local_irq_disable() or to ensure timing will still work.
 
> Has this sort of problem been seen with RT-Linux and such, which
> would cause similar delays?

bill


  reply	other threads:[~2004-07-22 19:46 UTC|newest]

Thread overview: 271+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-09 18:26 [announce] [patch] Voluntary Kernel Preemption Patch Ingo Molnar
2004-07-09 19:51 ` Christoph Hellwig
2004-07-09 23:50   ` Andrea Arcangeli
2004-07-10  0:52     ` Andrea Arcangeli
2004-07-10  1:02       ` Dave Jones
2004-07-12 10:17       ` Takashi Iwai
2004-07-12 19:36         ` Andrea Arcangeli
2004-07-13  7:43           ` Takashi Iwai
2004-07-10  6:32     ` Arjan van de Ven
2004-07-10  7:57     ` Ingo Molnar
2004-07-10  8:10       ` ismail dönmez
2004-07-10  8:28         ` Ingo Molnar
2004-07-19 10:36           ` [patch] voluntary-preempt 2.6.8-rc2-H4 Ingo Molnar
2004-07-20  1:38             ` Ramón Rey Vicente
2004-07-20  6:02               ` Ingo Molnar
2004-07-10 15:36       ` [announce] [patch] Voluntary Kernel Preemption Patch Andrea Arcangeli
2004-07-10 12:48   ` Ingo Molnar
2004-07-10 15:12     ` Con Kolivas
2004-07-10 15:14       ` Arjan van de Ven
2004-07-10 15:18         ` Con Kolivas
2004-07-11  7:07           ` Zwane Mwaikambo
2004-07-11  7:09             ` Con Kolivas
2004-07-11  7:16             ` [announce] [patch] " Zwane Mwaikambo
2004-07-11  9:18           ` Ingo Molnar
2004-07-11  9:29             ` Con Kolivas
2004-07-10 16:18       ` [announce] [patch] " Con Kolivas
2004-07-11  6:47         ` [ck] " Ingo Molnar
2004-07-11  6:59           ` Con Kolivas
2004-07-11 11:18             ` R. J. Wysocki
2004-07-11  7:09           ` [ck] Re: [announce] [patch] " Zwane Mwaikambo
2004-07-11 14:27           ` Con Kolivas
2004-07-11 14:29             ` Con Kolivas
2004-07-11 14:38             ` Ingo Molnar
2004-07-11 17:29               ` André Goddard Rosa
2004-07-11 17:49                 ` Grzegorz Kulewski
2004-07-11 21:20                   ` Con Kolivas
2004-07-11 21:25                     ` Grzegorz Kulewski
2004-07-11 20:17               ` Ingo Molnar
2004-07-12  8:23                 ` Voluntary Preemption + concurent games Aivils
2004-07-12  9:51                   ` Con Kolivas
2004-07-12 10:45                     ` Lenar Lõhmus
2004-07-12 11:52                     ` Aivils
2004-07-12 13:35                   ` Nick Piggin
2004-07-12 14:15               ` [ck] Re: [announce] [patch] Voluntary Kernel Preemption Patch Chris Friesen
2004-07-12 14:19                 ` Ingo Molnar
2004-07-10 15:58     ` Andrea Arcangeli
2004-07-09 21:13 ` Redeeman
2004-07-10  8:02   ` Ingo Molnar
2004-07-10  8:50     ` Ingo Molnar
2004-07-10 10:55       ` ismail dönmez
2004-07-10 11:26         ` Arjan van de Ven
2004-07-10 12:01           ` ismail dönmez
2004-07-10 12:05             ` Arjan van de Ven
2004-07-10 12:09             ` Nick Piggin
2004-07-10 12:35         ` Ingo Molnar
2004-07-10 12:58           ` ismail dönmez
2004-07-10 13:55             ` Ingo Molnar
2004-07-10 14:45               ` Nick Piggin
2004-07-10 14:57                 ` ismail dönmez
2004-07-12 10:48         ` Takashi Iwai
2004-07-12 13:09           ` ismail dönmez
2004-07-12 13:14             ` Takashi Iwai
2004-07-09 21:36 ` Torrey Hoffman
2004-07-10  8:23   ` Ingo Molnar
2004-07-10  1:00 ` Con Kolivas
2004-07-10  1:04   ` Dave Jones
2004-07-10 12:55     ` Ingo Molnar
2004-07-11  5:25 ` Andrew Morton
2004-07-11  9:32   ` Ingo Molnar
2004-07-11  9:45     ` Andrew Morton
2004-07-11  9:50       ` Ingo Molnar
2004-07-11  9:58         ` Andrew Morton
2004-07-11 10:30           ` Ingo Molnar
2004-07-11 10:42             ` Andrew Morton
2004-07-11 10:59               ` Arjan van de Ven
2004-07-11 11:13                 ` Andrew Morton
2004-07-11 18:07                   ` Mikulas Patocka
2004-07-12  7:08                 ` Zwane Mwaikambo
2004-07-19 10:20                   ` Ingo Molnar
2004-07-11 23:12             ` Robert Love
2004-07-12 22:40       ` Bill Davidsen
2004-07-12 13:24   ` John Stoffel
2004-07-12 22:56   ` [linux-audio-dev] " Lee Revell
2004-07-12 23:31     ` Andrew Morton
2004-07-12 23:58       ` Paul Davis
2004-07-13  0:06         ` Andrew Morton
2004-07-13  0:21           ` Con Kolivas
2004-07-13  1:01           ` [linux-audio-dev] Re: [announce] [patch] " Lee Revell
2004-07-13  7:49             ` Takashi Iwai
2004-07-13  8:12               ` Lee Revell
2004-07-13  0:01       ` Paul Davis
2004-07-13  0:08         ` Andrew Morton
2004-07-13 16:25           ` Andrea Arcangeli
2004-07-13 18:42             ` Lee Revell
2004-07-13 21:29               ` Andrew Morton
2004-07-13 21:45                 ` Lee Revell
2004-07-14  8:51                   ` Takashi Iwai
2004-07-14  9:36                     ` Lee Revell
2004-07-14 10:48                       ` Takashi Iwai
2004-07-14 14:52                         ` Lee Revell
2004-07-14 16:29                           ` Lee Revell
2004-07-14 10:26                     ` Benno Senoner
2004-07-13 18:48             ` Andrew Morton
2004-07-13 21:38               ` Andrea Arcangeli
2004-07-13 21:54                 ` Andrew Morton
2004-07-13 22:01                   ` Andrea Arcangeli
2004-07-13 22:25                     ` Andrew Morton
2004-07-13 22:37                       ` Andrea Arcangeli
2004-07-13 22:44                         ` Andrew Morton
2004-07-13 22:53                           ` Andrea Arcangeli
2004-07-13 23:06                             ` Andrew Morton
2004-07-13 23:18                               ` Andrea Arcangeli
2004-07-13 23:32                                 ` Andrew Morton
2004-07-14  0:40                                   ` Andrea Arcangeli
2004-07-14  0:45                                     ` Andrew Morton
2004-07-19 11:59                                 ` Ingo Molnar
2004-09-02 22:03                                   ` Andrea Arcangeli
2004-09-02 22:20                                     ` Andrew Morton
2004-09-02 23:03                                       ` Ingo Molnar
2004-09-02 23:21                                         ` Ingo Molnar
2004-07-13  7:58         ` Takashi Iwai
2004-07-13  0:17       ` Lee Revell
2004-07-13  0:46         ` Andrew Morton
2004-07-13  2:52           ` Lee Revell
2004-07-13  3:59             ` Andrew Morton
2004-07-13  7:57               ` Lee Revell
2004-07-19 10:48                 ` Ingo Molnar
2004-07-19 11:34                   ` Ingo Molnar
2004-07-20  5:38                   ` Lee Revell
2004-07-20  6:12                     ` Ingo Molnar
2004-07-20  6:59                       ` Lee Revell
2004-07-20  7:11                         ` Ingo Molnar
     [not found]                           ` <200407202011.20558.musical_snake@gmx.de>
2004-07-20 19:56                             ` Lee Revell
2004-07-20 23:49                               ` Benno Senoner
2004-07-21  0:32                                 ` [linux-audio-dev] " Lee Revell
2004-07-21  1:25                                   ` Timothy Miller
2004-07-21 21:38                                     ` Another dumb question about " Timothy Miller
2004-07-24  0:25                                       ` Lee Revell
2004-07-25 20:19                                         ` Timothy Miller
2004-07-25 20:13                                           ` Lee Revell
2004-07-21 10:53                                   ` [linux-audio-dev] Re: [announce] [patch] " Florian Schmidt
2004-07-21 11:18                                     ` Thomas Charbonnel
2004-07-21 12:04                                       ` pci gfx card / jack xruns / pci latencies (was: Re: [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch) Florian Schmidt
2004-07-21 17:49                                     ` [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch Fernando Pablo Lopez-Lezcano
2004-07-22 22:25                                     ` Andrew McGregor
2004-07-22 23:16                                       ` Florian Schmidt
2004-07-21 14:27                                   ` Benno Senoner
2004-07-20 12:19                       ` Jens Axboe
2004-07-20 21:32                         ` Lee Revell
2004-07-24  4:07                         ` Lee Revell
2004-07-24  5:46                           ` Lee Revell
2004-07-24  6:33                             ` Lee Revell
2004-07-24  6:43                             ` Ingo Molnar
2004-07-24 22:49                               ` Lee Revell
2004-07-24 23:30                                 ` Lee Revell
2004-07-24 11:27                             ` max request size 1024KiB by default? Rudo Thomas
2004-07-24 22:58                               ` Lee Revell
2004-07-26 19:29                                 ` Johannes Stezenbach
2004-07-27  5:15                                 ` Jens Axboe
2004-07-24 12:41                           ` [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch Mark Lord
2004-07-24  4:58                         ` Lee Revell
2004-07-13  8:31               ` Lee Revell
2004-07-13  8:43                 ` Andrew Morton
2004-07-13  8:53                   ` Lee Revell
2004-07-13  9:00                     ` Andrew Morton
2004-07-13  9:21                       ` Takashi Iwai
2004-07-13  9:25                         ` Andrew Morton
2004-07-13  9:33                           ` Takashi Iwai
2004-07-13  9:44                             ` Andrew Morton
2004-07-13  9:23                       ` Lee Revell
2004-07-13  9:29                         ` Andrew Morton
2004-07-13 20:37                           ` Lee Revell
2004-07-13 22:32                           ` Lee Revell
2004-07-13  8:07           ` Takashi Iwai
2004-07-13 22:40           ` Bill Davidsen
2004-07-13 23:47             ` Randy.Dunlap
2004-07-19 10:29           ` Ingo Molnar
2004-07-21  3:27             ` Lee Revell
2004-07-21  7:03               ` Andrew Morton
2004-07-21  4:58                 ` Lee Revell
2004-07-21  5:30                 ` Ingo Molnar
2004-07-21  6:03                   ` Lee Revell
2004-07-21  8:22                     ` Ingo Molnar
2004-07-21  8:52                       ` Ingo Molnar
2004-07-21 11:32                         ` Nick Piggin
2004-07-21 15:44                           ` Ingo Molnar
2004-07-22  4:56                             ` Nick Piggin
2004-07-22  7:07                               ` Ingo Molnar
2004-07-22 10:54                                 ` Nick Piggin
2004-07-22 16:23                                   ` Ingo Molnar
2004-07-22 22:11                                     ` Nick Piggin
2004-07-23  5:47                                       ` Ingo Molnar
2004-07-23  6:45                                         ` Nick Piggin
2004-07-23  6:55                                           ` Ingo Molnar
2004-07-23  7:11                                             ` Nick Piggin
2004-07-23  7:21                                               ` Ingo Molnar
2004-07-23  7:28                                                 ` Nick Piggin
2004-07-21 18:34                           ` Scott Wood
2004-07-21 18:46                             ` Ingo Molnar
2004-07-21 19:56                               ` Scott Wood
2004-07-21 21:08                                 ` Ingo Molnar
2004-07-22  2:47                                   ` Scott Wood
2004-07-21 21:45                                 ` Ingo Molnar
2004-07-22  2:28                                   ` Scott Wood
2004-07-22  7:40                                     ` Ingo Molnar
2004-07-22 18:53                                       ` Scott Wood
2004-07-22 19:45                                         ` Bill Huey [this message]
2004-07-28  6:45                                           ` Ingo Molnar
2004-07-28 20:52                                             ` Scott Wood
2004-07-29 18:21                                               ` Ingo Molnar
2004-07-29 18:36                                                 ` Bill Huey
2004-07-29 19:17                                                   ` Scott Wood
2004-07-29 19:25                                                     ` Bill Huey
2004-07-30  2:23                                             ` Eric St-Laurent
2004-07-29 20:26                                       ` Pavel Machek
2004-07-29 20:57                                         ` Scott Wood
2004-07-29 21:00                                           ` Pavel Machek
2004-07-29 21:07                                         ` Ingo Molnar
2004-07-21 22:52                             ` Nick Piggin
2004-07-21 18:32                         ` Scott Wood
2004-07-21 20:40                           ` Ingo Molnar
2004-07-21 18:30                       ` Scott Wood
2004-07-21 18:43                         ` Ingo Molnar
2004-07-22  2:32                           ` Scott Wood
2004-07-22  9:51                             ` Ingo Molnar
2004-07-22 18:36                               ` Scott Wood
2004-07-22 19:11                                 ` Robert Love
2004-07-21 21:00                         ` Scott Wood
2004-07-21 21:18                           ` Ingo Molnar
2004-07-21 22:14                             ` Bill Huey
2004-07-21 22:31                               ` Bill Huey
2004-07-21 22:37                             ` Scott Wood
2004-07-22 10:06                               ` [patch] voluntary-preempt-2.6.8-rc2-H9 Ingo Molnar
2004-07-22 16:00                                 ` scheduling while atomic (Re: voluntary-preempt-2.6.8-rc2-H9) Rudo Thomas
2004-07-22 16:19                                   ` Ingo Molnar
2004-07-22 17:24                                     ` voluntary-preempt I0: sluggish feel Rudo Thomas
2004-07-22 17:52                                       ` Matt Heler
2004-07-22 17:54                                       ` Rudo Thomas
2004-07-22 18:01                                         ` Ingo Molnar
2004-07-22 18:08                                           ` Ingo Molnar
2004-07-22 18:14                                             ` Ingo Molnar
2004-07-22 18:37                                               ` Rudo Thomas
2004-07-23 10:42                                               ` [patch] voluntary-preempt-2.6.8-rc2-I3 Ingo Molnar
2004-07-23 10:58                                                 ` Paolo Ciarrocchi
2004-07-23 11:04                                                   ` Ingo Molnar
2004-07-23 11:28                                                     ` [patch] voluntary-preempt-2.6.8-rc2-I4 Ingo Molnar
2004-07-24  0:16                                                       ` Lee Revell
2004-07-23 11:42                                                     ` [patch] voluntary-preempt-2.6.8-rc2-I3 Paolo Ciarrocchi
2004-07-23 12:00                                                       ` Ingo Molnar
2004-07-23 15:36                                                         ` Dang, Linh [CAR:2X23:EXCH]
2004-07-23 23:48                                                         ` Thomas Charbonnel
2004-07-26 11:10                                                           ` Ingo Molnar
2004-07-26 12:27                                                             ` Thomas Charbonnel
2004-07-22 18:31                                           ` voluntary-preempt I0: sluggish feel Robert Love
2004-07-22 18:32                                           ` Rudo Thomas
2004-07-22 18:38                                             ` Ingo Molnar
2004-07-22 18:00                                       ` Ingo Molnar
2004-07-21  6:07                 ` [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch Lee Revell
2004-07-21 10:14                 ` Roger Luethi
2004-07-13  0:58         ` Jan Depner
2004-07-13  1:00           ` Andrew Morton
2004-07-13  3:31         ` Florin Andrei
2004-07-13  6:31           ` Paul Winkler
2004-07-13 13:26         ` Benno Senoner
2004-07-13 14:50           ` Paul Davis
2004-07-13 19:45           ` Lee Revell
2004-07-13 22:17           ` Bill Davidsen
2004-07-16  4:50   ` Florin Andrei
2004-07-16 12:49     ` Takashi Iwai
2004-07-13 21:53 ` Timothy Miller
  -- strict thread matches above, loose matches on Subject: below --
2004-07-13 15:16 [linux-audio-dev] " Shane Shrybman

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=20040722194513.GA32377@nietzsche.lynx.com \
    --to=bhuey@lnxw.com \
    --cc=akpm@osdl.org \
    --cc=arjanv@redhat.com \
    --cc=linux-audio-dev@music.columbia.edu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=nickpiggin@yahoo.com.au \
    --cc=piggy@timesys.com \
    --cc=rlrevell@joe-job.com \
    --cc=scott@timesys.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