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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox