All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Woodhouse <dwmw2@infradead.org>
To: Stephen Hemminger <shemminger@osdl.org>
Cc: Crazy AMD K7 <snort2004@mail.ru>,
	bridge@osdl.org, Bart De Schuymer <bdschuym@pandora.be>,
	Andi Kleen <ak@suse.de>,
	netdev@oss.sgi.com
Subject: [Bridge] Re: do_IRQ: stack overflow: 872..
Date: Fri, 07 Jan 2005 19:06:52 +0100	[thread overview]
Message-ID: <1105121212.6500.3.camel@localhost.localdomain> (raw)
In-Reply-To: <20050107100017.454ddadc@dxpl.pdx.osdl.net>

On Fri, 2005-01-07 at 10:00 -0800, Stephen Hemminger wrote:
> > I don't think it's recursing -- I think the stack trace is just a bit
> > noisy. The problem is that the bridge code, especially with br_netfilter
> > in the equation, is implicated in code paths which are just _too_ deep.
> > This happens when you're bridging packets received in an interrupt while
> > you were deep in journalling code, and it's also been seen with a call
> > trace something like nfs->sunrpc->ip->bridge->br_netfilter.
> 
> Sounds like an argument for interrupt stacks.

The NFS case didn't involve hardware interrupts. Except for the one
which actually detected that the stack had overflowed.

> Probably the solution would be to handle it in the filter code
> that way if we are not filtering, we can use the interrupt path,
> but if filtering just defer to a safer context (like soft irq).

That's also a possibility.

> > Unfortunately that approach would introduce a lot of latency on all
> > packets we pass. Another option would be to have all architectures
> > provide a stack_available() function and for br_dev_xmit() to queue the
> > packet only if we're short of stack, while still sending most packets
> > immediately. 
> 
> NO, that looks like a testablity and portablity nightmare.

Yeah, I suppose I'm inclined to agree.

-- 
dwmw2


WARNING: multiple messages have this Message-ID (diff)
From: David Woodhouse <dwmw2@infradead.org>
To: Stephen Hemminger <shemminger@osdl.org>
Cc: Bart De Schuymer <bdschuym@pandora.be>, Andi Kleen <ak@suse.de>,
	Crazy AMD K7 <snort2004@mail.ru>,
	bridge@osdl.org, netdev@oss.sgi.com
Subject: Re: do_IRQ: stack overflow: 872..
Date: Fri, 07 Jan 2005 19:06:52 +0100	[thread overview]
Message-ID: <1105121212.6500.3.camel@localhost.localdomain> (raw)
In-Reply-To: <20050107100017.454ddadc@dxpl.pdx.osdl.net>

On Fri, 2005-01-07 at 10:00 -0800, Stephen Hemminger wrote:
> > I don't think it's recursing -- I think the stack trace is just a bit
> > noisy. The problem is that the bridge code, especially with br_netfilter
> > in the equation, is implicated in code paths which are just _too_ deep.
> > This happens when you're bridging packets received in an interrupt while
> > you were deep in journalling code, and it's also been seen with a call
> > trace something like nfs->sunrpc->ip->bridge->br_netfilter.
> 
> Sounds like an argument for interrupt stacks.

The NFS case didn't involve hardware interrupts. Except for the one
which actually detected that the stack had overflowed.

> Probably the solution would be to handle it in the filter code
> that way if we are not filtering, we can use the interrupt path,
> but if filtering just defer to a safer context (like soft irq).

That's also a possibility.

> > Unfortunately that approach would introduce a lot of latency on all
> > packets we pass. Another option would be to have all architectures
> > provide a stack_available() function and for br_dev_xmit() to queue the
> > packet only if we're short of stack, while still sending most packets
> > immediately. 
> 
> NO, that looks like a testablity and portablity nightmare.

Yeah, I suppose I'm inclined to agree.

-- 
dwmw2

  reply	other threads:[~2005-01-07 18:06 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1131604877.20041218092730@mail.ru.suse.lists.linux.kernel>
2004-12-18  7:50 ` do_IRQ: stack overflow: 872 Andi Kleen
2004-12-18 11:12   ` Bart De Schuymer
2004-12-18 11:14     ` Andi Kleen
2004-12-18 11:51       ` Bart De Schuymer
2004-12-18 13:53         ` Andi Kleen
2004-12-18 16:07           ` Re[2]: " Crazy AMD K7
2004-12-18 16:46             ` Bart De Schuymer
2005-01-07 17:05   ` David Woodhouse
2005-01-07 18:00     ` [Bridge] " Stephen Hemminger
2005-01-07 18:00       ` Stephen Hemminger
2005-01-07 18:06       ` David Woodhouse [this message]
2005-01-07 18:06         ` David Woodhouse
2005-01-07 21:27       ` [Bridge] " Bart De Schuymer
2005-01-07 21:27         ` Bart De Schuymer
2005-01-18 21:57         ` [Bridge] " David S. Miller
2005-01-18 21:57           ` David S. Miller
2005-01-22 22:30           ` [Bridge] [PATCH/RFC] Reduce call chain length in netfilter (was: Re: do_IRQ: stack overflow: 872..) Bart De Schuymer
2005-01-22 22:30             ` Bart De Schuymer
2005-01-22 23:22             ` [Bridge] " Martin Josefsson
2005-01-22 23:22               ` Martin Josefsson
2005-01-23 12:40               ` [Bridge] " Bart De Schuymer
2005-01-23 12:40                 ` Bart De Schuymer
2005-01-23 16:08                 ` [Bridge] " Martin Josefsson
2005-01-23 16:08                   ` Martin Josefsson
2005-01-26  6:05                   ` [Bridge] " David S. Miller
2005-01-26  6:05                     ` David S. Miller
2005-01-26  9:08                     ` [Bridge] " Bart De Schuymer
2005-01-26  9:08                       ` Bart De Schuymer
2005-01-26 23:49                       ` [Bridge] Re: [PATCH/RFC] Reduce call chain length in netfilter Patrick McHardy
2005-01-26 23:49                         ` Patrick McHardy
2005-01-27  7:18                         ` [Bridge] " David S. Miller
2005-01-27  7:18                           ` David S. Miller
2005-01-27 17:50                           ` [Bridge] " Patrick McHardy
2005-01-27 17:50                             ` Patrick McHardy
2005-01-27 19:47                             ` [Bridge] " David S. Miller
2005-01-27 19:47                               ` David S. Miller
2005-01-27 21:16                               ` [Bridge] " Bart De Schuymer
2005-01-27 21:16                                 ` Bart De Schuymer
2005-01-27 22:48                               ` [Bridge] " Patrick McHardy
2005-01-27 22:48                                 ` Patrick McHardy
2005-01-27 23:24                                 ` [Bridge] " David S. Miller
2005-01-27 23:24                                   ` David S. Miller
2005-01-28  0:08                                   ` [Bridge] " Patrick McHardy
2005-01-28  0:08                                     ` Patrick McHardy
2005-01-28  0:29                                   ` [Bridge] " Rusty Russell
2005-01-28  0:29                                     ` Rusty Russell
2005-01-28  1:10                                     ` [Bridge] " David S. Miller
2005-01-28  1:10                                       ` David S. Miller
2005-01-28  1:32                                       ` [Bridge] " Rusty Russell
2005-01-28  1:32                                         ` Rusty Russell
2005-01-28  1:35                                         ` [Bridge] " Patrick McHardy
2005-01-28  1:35                                           ` Patrick McHardy

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=1105121212.6500.3.camel@localhost.localdomain \
    --to=dwmw2@infradead.org \
    --cc=ak@suse.de \
    --cc=bdschuym@pandora.be \
    --cc=bridge@osdl.org \
    --cc=netdev@oss.sgi.com \
    --cc=shemminger@osdl.org \
    --cc=snort2004@mail.ru \
    /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.