From owner-freebsd-hackers Fri Apr 11 21:10:16 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id VAA12115 for hackers-outgoing; Fri, 11 Apr 1997 21:10:16 -0700 (PDT) Received: from dan.emsphone.com (dan@dan.emsphone.com [199.67.51.101]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id VAA12110 for ; Fri, 11 Apr 1997 21:10:13 -0700 (PDT) Received: (from dan@localhost) by dan.emsphone.com (8.8.2/8.8.2) id XAA29231; Fri, 11 Apr 1997 23:10:08 -0500 (CDT) Message-ID: <19970411231007.48281@dan.emsphone.com> Date: Fri, 11 Apr 1997 23:10:07 -0500 From: Dan Nelson To: Thomas David Rivers Cc: freebsd-hackers@freefall.FreeBSD.org Subject: Re: NFS problems - it doesn't appear to be ep0. References: <199704112012.QAA16156@lakes.water.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.67e In-Reply-To: <199704112012.QAA16156@lakes.water.net>; from "Thomas David Rivers" on Fri, Apr 11, 1997 at 04:12:45PM -0400 Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk In the last episode (Apr 11), Thomas David Rivers said: > > Well, regarding my NFS hang-ups to HP/UX 9.05 and Sunos 4.1.3 > systems (this is 2.2.1 as of April 8th). > > I replaced my 3c509 with a 3c900 and was able to demonstrate > the same lock up. > > It appears to be related to a readdir(), as only ls -l causes > the file system hang. A 'cat' of large files (quite large) > doesn't seem to have the same effect. > > I set the readdirsize down to 1024 with the -I argument on > the mount, but that didn't seem to affect it. I've seen this problem on 3com cards myself - both 3c509 (ep) and 3c905 (vx) cards. I get packet overruns, RX overruns, and fifo underruns when trying NFS accesses. With tcpdump on another machine, I can see that only the first two or three fragments of an 8K NFS packet ever get out. 3com's spec sheet for the 3c905XL 100BT card states it has only an 8K buffer, partitioned by default at 4K/4K transmit/receive! I don't think the -I option will let readdirs get any smaller than 4096 bytes anyway; I think it's because of the #define NFS_DIRBLKSIZ 4096 line in /sys/nfs/nfs.h. I tried lowering this number to 1024 and rebuilding the kernel, but NFS became unreliable and I had to up it back to 4096. If you have a card that can't send out 3 full-size IP fragments in a row, you just won't be able to make it work. I solved my particular problem by getting Intel EtherExpress Pro/100B cards, which have worked flawlessly. The 3com cards are now in DOS machines. -Dan Nelson dnelson@emsphone.com