From owner-freebsd-scsi Mon Sep 13 8:46:36 1999 Delivered-To: freebsd-scsi@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id 2CC8314D58 for ; Mon, 13 Sep 1999 08:46:33 -0700 (PDT) (envelope-from gallatin@cs.duke.edu) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.9.1/8.9.1) with ESMTP id LAA24294; Mon, 13 Sep 1999 11:46:28 -0400 (EDT) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.9.3/8.9.1) id LAA13772; Mon, 13 Sep 1999 11:45:58 -0400 (EDT) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Mon, 13 Sep 1999 11:45:57 -0400 (EDT) To: "Justin T. Gibbs" Cc: scsi@freebsd.org, anderson@cs.duke.edu, Don Lewis Subject: Re: data corruption when using aic7890 In-Reply-To: <199909110138.TAA03862@caspian.plutotech.com> References: <199909110138.TAA03862@caspian.plutotech.com> X-Mailer: VM 6.43 under 20.4 "Emerald" XEmacs Lucid Message-ID: <14301.2437.648605.15748@grasshopper.cs.duke.edu> Sender: owner-freebsd-scsi@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Justin T. Gibbs writes: > >I would continue to tweak the variable. I assume you tried setting > >the read threshold to MIN and the write threshold to MAX? In other > >words, don't start a read from host memory until the FIFO is almost > >empty, and don't start a write to host memory until the FIFO is almost > >full. The assumption here is that PCI is faster than the SCSI bus > >speed so we'll get the longest bursts this way. > > I misread the data book. If you set them both to MAX, then you would > get this behavior. The read fifo threshold is based on the amount > of empty space in the fifo, not the amount of data in it. I've tried all the extremes, with the following results: RD_DFTHRSH_MAX | WR_DFTHRSH_MIN: corruption on read soon after first pass RD_DFTHRSH_MIN | WR_DFTHRSH_MIN: corruption on read soon after first pass RD_DFTHRSH_MAX | WR_DFTHRSH_MAX: immediate corruption (maybe write was corrupted?) RD_DFTHRSH_MIN | WR_DFTHRSH_MAX: immediate corruption (maybe write was corrupted?) Before I go marching through all the combinations, is it possible that there is a flag set someplace when a fifo overrun/underrun occurs that you're not checking? Are the docs for this board available? BTW, in case I wasn't clear originally, I'm not just running the test on 2 disks connected to the 7890 controller. I'm also running our sequential read/write test on 2 identical disks connected to an ncr875 controller & to an IDE drive connected to the built-in PIIX4. Eg, I'm beating the snot out of the PCI bus by pushing about 50-70MB/sec of data across it from 3 separate PCI devices, so its not unreasonable to expect that a fifo might fill up under these conditions. Thanks, Drew ------------------------------------------------------------------------------ Andrew Gallatin, Sr Systems Programmer http://www.cs.duke.edu/~gallatin Duke University Email: gallatin@cs.duke.edu Department of Computer Science Phone: (919) 660-6590 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message