Re: [PATCH 3/3] faster workaround

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Alan Cox <alan@...>
Cc: Bernd Schubert <bs@...>, <linux-ide@...>, <linux-scsi@...>, <linux-kernel@...>
Date: Thursday, October 11, 2007 - 10:19 am

Alan Cox wrote:

Unfortunately all this stuff is quite meaningless, which was why my 
patch was never merged.

The problem is that the 3112 generates Data FIS's of a size other than a 
multiple of 512 bytes.  Spec-legal, but exposed firmware bugs in many 
early SATA drives.  Early Seagate hard drives choked when the formula 
(sector%15)==1 was satisfied (or something along those lines).

The problem with the fix is that Data FIS size is only roughly 
correlated to PRD segment length or DMA boundary -- the chip could 
decide to send out a frame even if the PRD length is < 8K.  The 3112 can 
generate not-512b-sized FIS's at any time, not just at the end of the 
transfer.

That leaves us with two observations:

1) Just about the only valid optimization is to ensure that only the 
write path must be limited to small chunks, not both read- and 
write-paths.  Tejun had a patch to do this a long time ago, but it's an 
open question whether the large amount of code is worth it for a rare 
combination.

2) Once we identified, over time, the set of drives affected by this 
3112 quirk (aka drives that didn't fully comply to SATA spec), the 
debugging of corruption cases largely shifted to the standard routine: 
update the BIOS, replace the cables/RAM/power/mainboard/slot/etc. to be 
certain of problem location.

	Jeff


-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCHES] Re: sil3114 data corruption, Bernd Schubert, (Thu Oct 11, 8:09 am)
Re: [PATCH 3/3] faster workaround, Bernd Schubert, (Thu Oct 11, 8:33 am)
Re: [PATCH 3/3] faster workaround, Alan Cox, (Thu Oct 11, 9:26 am)
Re: [PATCH 3/3] faster workaround, Jeff Garzik, (Thu Oct 11, 10:19 am)
Re: [PATCH 3/3] faster workaround, Alan Cox, (Thu Oct 11, 10:50 am)
Re: [PATCH 3/3] faster workaround, Jeff Garzik, (Thu Oct 11, 10:59 am)
Re: [PATCH 3/3] faster workaround, Tejun Heo, (Tue Oct 23, 4:08 am)
Re: [PATCH 3/3] faster workaround, Soeren Sonnenburg, (Wed Oct 24, 9:39 am)
Re: [PATCH 3/3] faster workaround, Bernd Schubert, (Tue Oct 23, 1:28 pm)
Re: [PATCH 3/3] faster workaround, Bernd Schubert, (Thu Oct 11, 10:39 am)
Re: [PATCH 3/3] faster workaround, Jeff Garzik, (Thu Oct 11, 11:04 am)
Re: [PATCH 3/3] faster workaround, Bernd Schubert, (Thu Oct 11, 11:18 am)
Re: [PATCH 3/3] faster workaround, Jeff Garzik, (Fri Oct 12, 5:08 pm)
Re: [PATCH 3/3] faster workaround, Bernd Schubert, (Mon Oct 15, 6:18 am)
[PATCH 1/3] Re: sil3114 data corruption, Bernd Schubert, (Thu Oct 11, 8:15 am)
Re: [PATCH 2/3] Re: sil3114 data corruption, Bernd Schubert, (Thu Oct 11, 8:20 am)