Date: Thu, 08 Feb 2001 21:55:40 +0000 From: Ian Dowse <iedowse@maths.tcd.ie> To: scsi@freebsd.org Cc: iedowse@maths.tcd.ie Subject: Solved: Corruption on ahc reads - seems PCI latency related Message-ID: <200102082155.aa15040@salmon.maths.tcd.ie> In-Reply-To: Your message of "Wed, 31 Jan 2001 22:53:10 GMT." <200101312253.aa86550@salmon.maths.tcd.ie>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <200101312253.aa86550@salmon.maths.tcd.ie>, Ian Dowse writes: > >We have a heavily loaded 4.2-STABLE NFS fileserver machine that >has recently developed a file corruption problem. The corruption >seems to be occurring during reads from one SCSI disk (da0). It >appears that small regions (usually 18 bytes) of a read are 'missed', >so the buffer cache ends up with mostly the new data, but some >bytes are from whatever happened to be in the buffer cache before >the read. Just so that this information goes into the archives: Tor Egge spotted a case in the ahc sequencer code where a known hardware bug in this card might not have been dealt with correctly. Justin Gibbs suggested the patch below, which is a slight simplification of Tor's proposal. The FIFOEMP status bit suffers from glitches, so the optimisation removed by this patch would occasionally skip a necessary manual flush operation. Since applying this patch, we have seen no more corruption. Justin has this fix in his local tree now, so it will get committed soon. Ian Index: aic7xxx.seq =================================================================== RCS file: /FreeBSD/FreeBSD-CVS/src/sys/dev/aic7xxx/aic7xxx.seq,v retrieving revision 1.94.2.8 diff -u -r1.94.2.8 aic7xxx.seq --- aic7xxx.seq 2001/01/27 20:56:27 1.94.2.8 +++ aic7xxx.seq 2001/02/06 23:22:00 @@ -904,9 +904,6 @@ test DFCNTRL, DIRECTION jnz ultra2_dmafifoempty; and DFCNTRL, ~SCSIEN; test DFCNTRL, SCSIEN jnz .; - if ((ahc->bugs & AHC_AUTOFLUSH_BUG) != 0) { - test DFSTATUS, FIFOEMP jnz ultra2_dmafifoempty; - } ultra2_dmafifoflush: if ((ahc->bugs & AHC_AUTOFLUSH_BUG) != 0) { /* To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi? <200102082155.aa15040>