NetBSD Problem Report #1467
From gnats Fri Sep 15 16:59:23 1995
Received: from whirlpool.com (root@WHIRLPOOL.COM [158.52.254.1]) by sun-lamp.pc.cs.cmu.edu (8.6.11/8.6.10) with ESMTP id QAA20340 for <gnats-bugs@gnats.netbsd.org>; Fri, 15 Sep 1995 16:59:19 -0400
Message-Id: <199509152058.QAA20468@ghost.whirlpool.com>
Date: Fri, 15 Sep 1995 16:58:27 -0400
From: Andrew Gillham <gillhaa@ghost.whirlpool.com>
Reply-To: gillhaa@ghost.whirlpool.com
To: gnats-bugs@gnats.netbsd.org
Subject: 3c509 driver (if_ep.c) panics
X-Send-Pr-Version: 3.2
>Number: 1467
>Category: port-i386
>Synopsis: 3c509 driver (if_ep.c) panics
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: gnats-admin
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Sep 15 17:05:01 +0000 1995
>Closed-Date: Tue Oct 10 02:59:27 +0000 1995
>Last-Modified: Tue Oct 10 03:11:59 +0000 1995
>Originator: Andrew Gillham
>Release: Fri Sep 15 1995
>Organization:
Whirlpool Corporation
===================================================
Andrew Gillham Whirlpool Corporation
LAN Support (gillhaa@whirlpool.com)
>Environment:
Dell Omniplex 5100 (Pentium 100 EISA/PCI)
16MB RAM
NCR 53C810
Quantum 1GB
2 x 3c509B-TPO
NetBSD-current with 'options GATEWAY'
>Description:
I am getting a "panic: timeout table full" when my PC is
acting as a router, and there are large UDP transmits.
I am routing between ep0/ep1 with a SparcStation on each
subnet. Running the following command on the SparcLX panics
the NetBSD/i386 router almost immediately. (< 2seconds)
# ./ttcp -t -s -u address.of.sparc.2
(and './ttcp -r -s -u' on the sparc 2)
Using TCP does not trigger a panic. NFS mounts over UDP do
not either. It appears to be back-to-back UDP only.
>How-To-Repeat:
Install 2 3c509s and use ttcp to test routing performance
with the above commands.
>Fix:
Unknown. Increasing maxusers to 64 did not help. The if_ep.c
timeout() seems to be at fault.
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed
State-Changed-By: mycroft
State-Changed-When: Mon Oct 9 22:59:27 EDT 1995
State-Changed-Why:
Fixed.
From: Charles Hannum <Charles-Hannum@deshaw.com>
To: gillhaa@ghost.whirlpool.com
Cc: gnats-bugs@gnats.netbsd.org
Subject: Re: port-i386/1467: 3c509 driver (if_ep.c) panics
Date: Mon, 9 Oct 1995 23:11:01 -0400
I think the following patch should fix this problem. Please let me
know ASAP whether or not it does.
Index: if_ep.c
===================================================================
RCS file: /a/cvsroot/src/sys/dev/isa/if_ep.c,v
retrieving revision 1.81
diff -c -2 -r1.81 if_ep.c
*** if_ep.c 1995/07/27 05:01:08 1.81
--- if_ep.c 1995/10/10 03:03:04
***************
*** 847,853 ****
int sh;
- /* We're going to use at least one mbuf. */
- timeout(epmbuffill, sc, 1);
-
m = sc->mb[sc->next_mb];
sc->mb[sc->next_mb] = 0;
--- 847,850 ----
***************
*** 857,860 ****
--- 854,860 ----
return 0;
} else {
+ /* If the queue is no longer full, refill. */
+ if (sc->last_mb == sc->next_mb)
+ timeout(epmbuffill, sc, 1);
/* Convert one of our saved mbuf's. */
sc->next_mb = (sc->next_mb + 1) % MAX_MBS;
***************
*** 1144,1147 ****
--- 1144,1150 ----
} while (i != sc->next_mb);
sc->last_mb = i;
+ /* If the queue was not filled, try again. */
+ if (sc->last_mb != sc->next_mb)
+ timeout(epmbuffill, sc, 1);
splx(s);
}
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.