From owner-freebsd-net Thu Feb 25 9:54:49 1999 Delivered-To: freebsd-net@freebsd.org Received: from widefw.csl.sony.co.jp (widefw.csl.sony.co.jp [133.138.1.1]) by hub.freebsd.org (Postfix) with ESMTP id 312E414DEE for ; Thu, 25 Feb 1999 09:53:51 -0800 (PST) (envelope-from kjc@csl.sony.co.jp) Received: from hotaka.csl.sony.co.jp (root@hotaka.csl.sony.co.jp [43.27.98.57]) by widefw.csl.sony.co.jp (8.8.8/3.6W) with ESMTP id CAA24797; Fri, 26 Feb 1999 02:32:56 +0900 (JST) Received: from localhost (kjc@[127.0.0.1]) by hotaka.csl.sony.co.jp (8.8.8/3.6W/hotaka/98122515) with ESMTP id CAA29017; Fri, 26 Feb 1999 02:32:55 +0900 (JST) Message-Id: <199902251732.CAA29017@hotaka.csl.sony.co.jp> To: Graeme Brown Cc: "FreeBSD-Net (FreeBSD.Org) List" , Alan ONeill , Arie van Breene Subject: Re: Troubles with BSDATM and PVCs In-reply-to: Your message of "25 Feb 1999 16:02:03 +0100." Date: Fri, 26 Feb 1999 02:32:55 +0900 From: Kenjiro Cho Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Graeme, >> Has anyone seen/heard of reliability problems using BSDATM in >> conjunction with ENI ATM NICs or more specifically using ENI cards >> with ALTQ pvcsifs ? Could you try the patch attached below? I fixed a bug back in October but somehow it slipped away when I made altq-1.1.3. I noticed this mistake a couple of days ago. (the fix was also made to 3.0-current.) bug description: When the entire transmit buffer is used, the transmitter thinks that the buffer is empty (WRTX == RDTX) and stops sending. The driver thinks the buffer is full, which leads to a lockup. This happens only when - the sending rate is set to a small value by the hardware shaper (to overload the NIC) - overload the NIC with small UDP packets (specific packet size is required to fit into the total buffer size) If your problem does not go away, - enable DDB in your kernel (options DDB) - when you see the problem, go to DDB by Alt-Cntrl-ESC type "call en_dump(0,1)" (the first argument is the device unit number and the second argument is dump level) send me the output --Kenjiro --- midway.c- Wed Oct 7 20:54:18 1998 +++ midway.c Thu Oct 8 12:24:34 1998 @@ -2237,7 +2237,11 @@ goto dequeue_drop; } - if (launch.need > sc->txslot[chan].bfree) { + /* + * note: don't use the entire buffer space. if WRTX becomes equal + * to RDTX, the transmitter stops assuming the buffer is empty! --kjc + */ + if (launch.need >= sc->txslot[chan].bfree) { EN_COUNT(sc->txoutspace); #ifdef EN_DEBUG printf("%s: tx%d: out of transmit space\n", sc->sc_dev.dv_xname, chan); To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message