From: Benjamin LaHaise <bcrl@redhat.com>
To: jamal <hadi@cyberus.ca>
Cc: linux-kernel@vger.kernel.org, kuznet@ms2.inr.ac.ru,
Robert Olsson <Robert.Olsson@data.slu.se>,
Ingo Molnar <mingo@elte.hu>,
netdev@oss.sgi.com
Subject: Re: [announce] [patch] limiting IRQ load, irq-rewrite-2.4.11-B5
Date: Mon, 1 Oct 2001 21:04:45 -0400 [thread overview]
Message-ID: <20011001210445.D15341@redhat.com> (raw)
In-Reply-To: <Pine.GSO.4.30.0110012018430.27922-100000@shell.cyberus.ca>
In-Reply-To: <Pine.GSO.4.30.0110012018430.27922-100000@shell.cyberus.ca>; from hadi@cyberus.ca on Mon, Oct 01, 2001 at 08:41:20PM -0400
On Mon, Oct 01, 2001 at 08:41:20PM -0400, jamal wrote:
>
> >The new mechanizm:
> >
> >- the irq handling code has been extended to support 'soft mitigation',
> > ie. to mitigate the rate of hardware interrupts, without support from
> > the actual hardware. There is a reasonable default, but the value can
> > also be decreased/increased on a per-irq basis via
> > /proc/irq/NR/max_rate.
>
> I am sorry, but this is bogus. There is no _reasonable value_. Reasonable
> value is dependent on system load and has never been and never
> will be measured by interupt rates. Even in non-work conserving schemes
It is not dependant on system load, but rather on the performance of the
CPU and the number of interrupt sources in the system.
> There is already a feedback system that is built into 2.4 that
> measures system load by the rate at which the system processes the backlog
> queue. Look at netif_rx return values. The only driver that utilizes this
> is currently the tulip. Look at the tulip code.
> This in conjuction with h/ware flow control should give you sustainable
> system.
Not quite. You're still ignoring the effect of interrupts on the users'
ability to execute instructions during their timeslice.
> [Granted that mitigation is a hardware specific solution; the scheme we
> presented at the kernel summit is the next level to this and will be
> non-dependednt on h/ware.]
>
> >(note that in case of shared interrupts, another 'innocent' device might
> >stay disabled for some short amount of time as well - but this is not an
> >issue because this mitigation does not make that device inoperable, it
> >just delays its interrupt by up to 10 msecs. Plus, modern systems have
> >properly distributed interrupts.)
>
> This is a _really bad_ idea. not just because you are punishing other
> devices.
I'm afraid I have to disagree with you on this statement. What I will
agree with is that 10msec is too much.
> Lets take network devices as examples: we dont want to disable interupts;
> we want to disable offending actions within the device. For example, it is
> ok to disable/mitigate receive interupts because they are overloading the
> system but not transmit completion because that will add to the overall
> latency.
Wrong. Let me introduce you to my 486DX/33. It has PCI. I'm putting my
gige card into the poor beast. transmitting full out, it can receive a
sufficiently high number of tx done interrupts that it has no CPU cycles left
to run, say, gated in userspace.
Falling back to polled operation is a well known technique in realtime and
reliable systems. By limiting the interrupt rate to a known safe limit,
the system will remain responsive to non-interrupt tasks even under heavy
interrupt loads. This is the point at which a thruput graph on a slow
machine shows a complete breakdown in performance, which is always possible
on a slow enough CPU with a high performance device that takes input from
a remotely controlled user. This is *required*, and is not optional, and
there is no way that a system can avoid it without making every interrupt
a task, but that's a mess nobody wants to see in Linux.
-ben
next prev parent reply other threads:[~2001-10-02 1:04 UTC|newest]
Thread overview: 151+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-10-02 0:41 [announce] [patch] limiting IRQ load, irq-rewrite-2.4.11-B5 jamal
2001-10-02 1:04 ` Benjamin LaHaise [this message]
2001-10-02 1:54 ` jamal
2001-10-02 5:13 ` Benjamin LaHaise
2001-10-02 5:55 ` Ben Greear
2001-10-02 17:03 ` Robert Olsson
2001-10-02 17:37 ` jamal
2001-10-02 19:46 ` Andreas Dilger
2001-10-03 9:22 ` Ingo Molnar
2001-10-03 14:06 ` David Brownell
2001-10-02 12:10 ` jamal
2001-10-02 22:00 ` jamal
2001-10-03 8:34 ` Ingo Molnar
2001-10-03 9:29 ` Helge Hafting
2001-10-03 12:49 ` jamal
2001-10-03 14:51 ` Ingo Molnar
2001-10-03 15:14 ` jamal
2001-10-03 17:28 ` Ingo Molnar
2001-10-04 0:53 ` jamal
2001-10-04 6:28 ` Ingo Molnar
2001-10-04 11:34 ` jamal
2001-10-04 17:40 ` Andreas Dilger
2001-10-04 18:33 ` jamal
2001-10-04 6:50 ` Ben Greear
2001-10-04 6:52 ` Ingo Molnar
2001-10-04 11:50 ` jamal
2001-10-04 6:55 ` Jeff Garzik
2001-10-04 6:56 ` Ingo Molnar
2001-10-04 21:28 ` Alex Bligh - linux-kernel
2001-10-04 21:49 ` Benjamin LaHaise
2001-10-04 23:20 ` Alex Bligh - linux-kernel
2001-10-04 23:26 ` Benjamin LaHaise
2001-10-04 23:47 ` Robert Love
2001-10-04 23:51 ` Linus Torvalds
2001-10-05 0:00 ` Ben Greear
2001-10-05 0:18 ` Davide Libenzi
2001-10-05 2:01 ` jamal
2001-10-04 22:01 ` Simon Kirby
2001-10-04 23:25 ` Alex Bligh - linux-kernel
2001-10-04 23:34 ` Simon Kirby
2001-10-04 22:10 ` Alan Cox
2001-10-04 23:28 ` Alex Bligh - linux-kernel
2001-10-05 15:22 ` Robert Olsson
2001-10-03 9:38 ` Ingo Molnar
2001-10-03 13:03 ` jamal
2001-10-03 13:25 ` jamal
2001-10-03 13:38 ` Robert Olsson
2001-10-04 21:22 ` Alex Bligh - linux-kernel
2001-10-05 14:32 ` Robert Olsson
2001-10-03 15:28 ` Ingo Molnar
2001-10-03 15:56 ` jamal
2001-10-03 16:51 ` Ingo Molnar
2001-10-03 21:08 ` Robert Olsson
2001-10-03 22:22 ` Andreas Dilger
2001-10-04 17:32 ` Davide Libenzi
2001-10-05 14:52 ` Robert Olsson
2001-10-05 18:48 ` Andreas Dilger
2001-10-05 19:07 ` Davide Libenzi
2001-10-05 19:17 ` kuznet
2001-10-07 6:11 ` Robert Olsson
2001-10-08 13:58 ` jamal
2001-10-08 17:42 ` Robert Olsson
2001-10-08 17:39 ` jamal
2001-10-04 0:46 ` jamal
2001-10-08 0:31 ` Andrea Arcangeli
2001-10-08 4:58 ` Bernd Eckenfels
2001-10-08 15:00 ` Alan Cox
2001-10-08 15:03 ` Jeff Garzik
2001-10-08 15:12 ` Alan Cox
2001-10-08 15:09 ` jamal
2001-10-08 15:22 ` Alan Cox
2001-10-08 15:20 ` jamal
2001-10-08 15:35 ` Alan Cox
2001-10-08 15:57 ` jamal
2001-10-08 16:11 ` Alan Cox
2001-10-08 16:11 ` jamal
2001-10-10 16:26 ` Pavel Machek
2001-10-10 16:25 ` Pavel Machek
2001-10-08 15:24 ` Andrea Arcangeli
2001-10-08 15:35 ` Alan Cox
2001-10-08 15:19 ` Andrea Arcangeli
2001-10-08 15:10 ` bill davidsen
2001-10-03 16:53 ` kuznet
2001-10-03 17:06 ` Ingo Molnar
2001-10-04 0:44 ` jamal
2001-10-04 6:35 ` Ingo Molnar
2001-10-04 11:41 ` jamal
2001-10-04 13:05 ` Robert Olsson
2001-10-05 16:42 ` kuznet
2001-10-03 19:03 ` Benjamin LaHaise
2001-10-04 1:10 ` jamal
2001-10-04 1:30 ` Benjamin LaHaise
2001-10-03 22:31 ` Rob Landley
2001-10-04 1:39 ` jamal
2001-10-03 15:42 ` Ben Greear
2001-10-03 15:58 ` jamal
2001-10-03 16:09 ` Ben Greear
2001-10-03 16:14 ` Ingo Molnar
2001-10-03 16:20 ` Jeff Garzik
2001-10-03 16:33 ` Linus Torvalds
2001-10-03 17:25 ` Ingo Molnar
2001-10-03 18:11 ` Linus Torvalds
2001-10-03 20:41 ` Jeremy Hansen
2001-10-03 20:02 ` Simon Kirby
2001-10-04 1:04 ` jamal
2001-10-04 6:47 ` Ben Greear
2001-10-04 7:41 ` Henning P. Schmiedehausen
2001-10-04 16:09 ` Ben Greear
2001-10-04 17:32 ` Henning P. Schmiedehausen
2001-10-04 18:03 ` Ben Greear
2001-10-04 18:30 ` Christopher E. Brown
2001-10-04 11:47 ` jamal
2001-10-04 15:56 ` Ben Greear
2001-10-04 18:23 ` jamal
2001-10-04 6:50 ` Ingo Molnar
2001-10-04 11:49 ` jamal
2001-10-04 8:45 ` Simon Kirby
2001-10-04 11:54 ` jamal
2001-10-04 15:03 ` Tim Hockin
2001-10-04 18:55 ` Ion Badulescu
2001-10-04 19:00 ` jamal
2001-10-04 21:16 ` Ion Badulescu
2001-10-04 4:12 ` bill davidsen
2001-10-04 18:16 ` Alan Cox
2001-10-03 8:38 ` Ingo Molnar
2001-10-04 3:50 ` bill davidsen
-- strict thread matches above, loose matches on Subject: below --
2001-10-08 14:45 jamal
2001-10-09 0:36 ` Scott Laird
2001-10-09 3:17 ` jamal
2001-10-09 4:04 ` Werner Almesberger
2001-10-04 8:25 Magnus Redin
2001-10-04 11:39 ` Trever L. Adams
[not found] <200110031811.f93IBoN10026@penguin.transmeta.com>
2001-10-03 18:23 ` Ingo Molnar
2001-10-04 9:19 ` BALBIR SINGH
2001-10-04 9:22 ` Ingo Molnar
2001-10-04 9:49 ` BALBIR SINGH
2001-10-04 10:25 ` Ingo Molnar
2001-10-07 20:37 ` Andrea Arcangeli
2001-10-03 14:15 Manfred Spraul
2001-10-03 15:09 ` jamal
2001-10-03 18:37 ` Davide Libenzi
2001-10-01 22:16 Ingo Molnar
2001-10-01 22:26 ` Tim Hockin
2001-10-01 22:50 ` Ingo Molnar
2001-10-01 22:36 ` Andreas Dilger
2001-10-01 22:50 ` Ben Greear
2001-10-02 14:30 ` Alan Cox
2001-10-02 20:51 ` Ingo Molnar
2001-10-01 23:03 ` Linus Torvalds
2001-10-02 6:50 ` Marcus Sundberg
2001-10-03 8:47 ` Ingo Molnar
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=20011001210445.D15341@redhat.com \
--to=bcrl@redhat.com \
--cc=Robert.Olsson@data.slu.se \
--cc=hadi@cyberus.ca \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=netdev@oss.sgi.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.