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:

NetBSD Home
NetBSD PR Database Search

(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.