public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Matt Mackall <mpm@selenic.com>
To: Tim Hockin <thockin@hockin.org>
Cc: "Grover, Andrew" <andrew.grover@intel.com>,
	Helge Hafting <helgehaf@aitel.hist.no>,
	linux-kernel@vger.kernel.org
Subject: Re: Why no interrupt priorities?
Date: Fri, 27 Feb 2004 14:29:06 -0600	[thread overview]
Message-ID: <20040227202906.GL3883@waste.org> (raw)
In-Reply-To: <20040227190914.GA21737@hockin.org>

On Fri, Feb 27, 2004 at 11:09:14AM -0800, Tim Hockin wrote:
> On Fri, Feb 27, 2004 at 12:55:55PM -0600, Matt Mackall wrote:
> > Let's imagine you have n sources simultaneously interrupting on a
> > given descriptor. Check the first, it's happening, acknowledge it,
> > exit, notice interrupt still asserted, check the first, nope, check
> > the second, yep, exit, etc. By the time we've made it to the nth ISR,
> > we've banged on the first one n times, the second n-1 times, etc. In
> > other words, early chain termination has an O(n^2) worst case.
> 
> That is a pretty pathological worst case, and n is (almost?) always small.
> I don't know if it would make a lick of difference, or if it is worth the
> risk. Someone who has a lot of shared interrupts ought to try it.

For small n, it shouldn't make a difference. With early exit, best
case you end up walking half the chain on average, worst case you hit
the quadratic behavior. Given that the likelihood of contention rises
with chain length, we tend to lean towards the latter for larger n.
For try-them-all, we test n in all cases. So we've got [n/2] < n <
n^2/2. The try-them-all approach wins by virtue of being deterministic
and nicely bounded.

Oh, another concern is that early-exit lets sources in the front of
the chain starve the remainder and doing bookkeeping on
last-ISR-succeeded so that we can have some sort of fairness is just
not worth the trouble. So nix on the whole idea.

-- 
Matt Mackall : http://www.selenic.com : Linux development and consulting

  reply	other threads:[~2004-02-27 20:29 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-27 17:44 Why no interrupt priorities? Grover, Andrew
2004-02-27 18:15 ` Chris Friesen
2004-02-27 18:42   ` Richard B. Johnson
2004-02-27 19:42     ` Michael Frank
2004-02-27 19:11   ` Michael Frank
2004-02-27 18:55 ` Matt Mackall
2004-02-27 19:09   ` Tim Hockin
2004-02-27 20:29     ` Matt Mackall [this message]
2004-02-27 19:19   ` Michael Frank
2004-02-27 20:53     ` Jesse Pollard
2004-02-29  9:43       ` Michael Frank
2004-03-01 16:57         ` Jesse Pollard
2004-03-01 17:35           ` Michael Frank
2004-03-02 15:25             ` Jesse Pollard
  -- strict thread matches above, loose matches on Subject: below --
2004-02-27 11:37 Etienne Lorrain
2004-02-27 13:24 ` Michael Frank
     [not found] <mailman.1077822002.21081.linux-kernel2news@redhat.com>
2004-02-27  8:00 ` Pete Zaitcev
2004-02-27  1:36 Grover, Andrew
2004-02-27  3:02 ` Randy.Dunlap
2004-02-29  8:32   ` Michael Frank
2004-02-29  8:36     ` Arjan van de Ven
2004-02-29  9:52       ` Michael Frank
2004-02-27  5:32 ` Benjamin Herrenschmidt
2004-02-27  6:26   ` Michael Frank
2004-02-27  6:46     ` Benjamin Herrenschmidt
2004-02-27  9:05     ` Russell King
2004-02-27 13:31       ` Michael Frank
2004-02-27 13:45         ` Richard B. Johnson
2004-02-27 13:50         ` Russell King
2004-02-27 14:51           ` Michael Frank
2004-02-27  7:25 ` Arjan van de Ven
2004-02-27 10:15 ` Helge Hafting
2004-02-27 18:32   ` Mike Fedyk
2004-02-26 23:47 Albert Cahalan
2004-02-26 19:05 Tim Bird
2004-02-26 19:39 ` Richard B. Johnson
2004-02-26 21:02   ` Tim Bird
2004-02-26 21:30     ` Arjan van de Ven
2004-02-26 22:21       ` Mark Gross
2004-02-27  7:14         ` Arjan van de Ven
2004-02-27 11:27           ` Ingo Oeser
2004-02-27 11:52             ` Arjan van de Ven
2004-02-27 13:23     ` Richard B. Johnson
2004-02-27 12:04 ` Christoph Hellwig

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=20040227202906.GL3883@waste.org \
    --to=mpm@selenic.com \
    --cc=andrew.grover@intel.com \
    --cc=helgehaf@aitel.hist.no \
    --cc=linux-kernel@vger.kernel.org \
    --cc=thockin@hockin.org \
    /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