From owner-freebsd-hackers Sat Feb 8 11:33:27 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id LAA25400 for hackers-outgoing; Sat, 8 Feb 1997 11:33:27 -0800 (PST) Received: from minor.stranger.com (stranger.vip.best.com [204.156.129.250]) by freefall.freebsd.org (8.8.5/8.8.5) with SMTP id LAA25394 for ; Sat, 8 Feb 1997 11:33:20 -0800 (PST) Received: from dog.farm.org (dog.farm.org [207.111.140.47]) by minor.stranger.com (8.6.12/8.6.12) with ESMTP id LAA04244; Sat, 8 Feb 1997 11:40:38 -0800 Received: (from dk@localhost) by dog.farm.org (8.7.5/dk#3) id LAA14825; Sat, 8 Feb 1997 11:37:11 -0800 (PST) From: Dmitry Kohmanyuk Message-Id: <199702081937.LAA14825@dog.farm.org> Subject: Re: 2.2 panic in i586_bc1 call from nfs_writerpc() To: bde@zeta.org.au (Bruce Evans) Date: Sat, 8 Feb 1997 11:37:11 -0800 (PST) Cc: dk@genesyslab.com, freebsd-hackers@freebsd.org, dk@farm.org In-Reply-To: <199702080753.SAA04049@godzilla.zeta.org.au> from Bruce Evans at "Feb 8, 97 06:53:21 pm" Reply-To: dk+@ua.net X-Class: Fast X-OS-Of-the-Day: FreeBSD 2.2-960501-SNAP X-NIC-Handle: DK379 X-Pager-Email: dk@interpage.net X-Spammers-Killed-to-Date: [fresh update on unsolicited inquiry] X-Mailer: ELM [version 2.4ME+ PL13 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Quoting Bruce Evans: > >there are 2 calls to bcopy() in nfs_vnops.c:nfs_writerpc(), but the logic > >is that only one of them can be executed at one invocation. > > Logic is that neither can have got to i586_bc1, since they only copy 8 > bytes and i586_bc1 is only used for >= 1024 bytes :-). yes, I see. morning light helps ;-) from the line number in nfs_writerpc, it's evident that the call to bcopy occured from nfsm_uiotombuf() (hidden in the macro nfs_uiotom). this function has only one call to bcopy(). (and one to copyin()) > >(btw, gdb cannot disassemble functions in support.s ;-( but it's easy > ^^^^^^^^^^^ backtrace > >to see that it's within i586_bc1 anyway (next label is i586_global_bcopy, > >and that address is higher than fault's). well - I type `disas i586_bc1' so I can look up instruction by address, and gdb refuses to do so. > The frame pointer isn't set up for the functions in support.s, so the > backtrace probably skips one function: nfs_writerpc() called something > that called bcopy(). > > Do you use nfsv3? v2 obviously won't work properly with files > larger than 2GB or 4GB. E.g., for v2, nfs_writerpc() uses > txdr_unsigned(uiop->uio_offset) and throws away the high 32 bits of > the offset :-(. yes, the mount was v3 (and probably even TCP). The NFS server is NetApp F330, running Data ONTAP 4.0.1c (that's a dedicated NFS server, essentially a Pentium PC with additional SCSI disk shelves, rackmounted. The entire OS fits into 1 floppy disk and has a command-line interface with similarities to Unix command set. It does up to 1Mb/s for both NFS writes and reads - I wish FreeBSD can do that.)