From owner-freebsd-scsi Tue Sep 14 8:47:55 1999 Delivered-To: freebsd-scsi@freebsd.org Received: from arjun.niksun.com (gw.niksun.com [206.20.52.122]) by hub.freebsd.org (Postfix) with ESMTP id 2395514BFD for ; Tue, 14 Sep 1999 08:47:52 -0700 (PDT) (envelope-from ath@niksun.com) Received: from stiegl.niksun.com (stiegl.niksun.com [10.0.0.44]) by arjun.niksun.com (8.8.8/8.8.8) with ESMTP id LAA16715; Tue, 14 Sep 1999 11:47:50 -0400 (EDT) Received: (from ath@localhost) by stiegl.niksun.com (8.9.2/8.8.7) id LAA06404; Tue, 14 Sep 1999 11:47:46 -0400 (EDT) (envelope-from ath) To: Andrew Gallatin Cc: freebsd-scsi@freebsd.org, gibbs@caspian.plutotech.com, anderson@cs.duke.edu, don.lewis@tsc.tdk.com Subject: Re: data corruption when using aic7890 References: <199909110138.TAA03862@caspian.plutotech.com> <14301.2437.648605.15748@grasshopper.cs.duke.edu> From: Andrew Heybey Date: 14 Sep 1999 11:47:46 -0400 In-Reply-To: Andrew Gallatin's message of "Mon, 13 Sep 1999 11:45:57 -0400 (EDT)" Message-ID: <85aeqpfqal.fsf@stiegl.niksun.com> Lines: 42 X-Mailer: Gnus v5.5/XEmacs 20.4 - "Emerald" Sender: owner-freebsd-scsi@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Andrew Gallatin writes: > 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. Contention on the PCI bus seems to be the key to causing the problem. In my case it was 10MByte/s of network traffic (with 44K interrupts/sec) plus reading the disks as fast as possible. I never saw the problem with *just* reading disks, only when I added the network traffic. In your case you have multiple disk controllers fighting for the bus. andrew To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message