Hi Andrew, The part of the puzzle is that I have not found a baseline where it works. I do need to do more controlled and comparative testing. One on my list is to test the same code on i386 hardware. It's also a good idea to test without using SG as you suggested. But what are my alternatives to get both PATA and SATA support without sg? sd interface, sg read/write instead of sg ioctl (probably little code difference here). For PATA, IDE path may be worthy of testing, but it would require quite extensive change to my test application. Thanks, Fajun On 8/20/06, Andrew Morton <akpm@xxxxxxxx> wrote:
On Sun, 20 Aug 2006 03:30:56 -0600 "Fajun Chen" <fajunchen@xxxxxxxxx> wrote: > Hi Folks, > > I use ATA pass through via sg ioctl interface for data read/write. Two > kernels were tested: > Linux 2.6.15.4 with Jeff Garzik's libata patch (pata support) > Linux 2.6.18-rc2 with Jeff Garzik's git libata patch (new EH, hotplug, > pata support) > Hardware: ARM IOP80321 with PCI-X > Host adapters: sata Sil3124 and pata Sil680 > Test algorithm: random write-read-compare (same range) > > I've tried sg mmap, direct and indirect IO on both 2.6.18-rc2 and > 2.6.15.4 release, none of the combinations survived data compare > overnight test. I also tried to change cache policy to write through > on 2.6.15.4, no luck either. Several different symptoms were > observed among the failures: > 1. A few bytes in a data pattern were not written correctly to the > disc (low data miscompare rate) > 2. Pretty much none of the data were written correctly to the disc > (high data miscompare rate) > 3. Data were written to the disc correctly but miscompares when read > it back. What's weird is that when the read buffer was printed out > right after data miscompare , it contains the correct data! > Sg write failures (symptom #1 and #2) are more typical than read > failure (symptom #3). This problem has been observed on many > different test machines with both pata and sata drives. > > I don't know of a good way to trace and isolate the problem yet. Since > data miscompare issue can be caused by issues from different > subsystems, I cc'ed some subsystem maintainers here. Any information > or suggestions are greatly appreciated. > Have you tested the same hardware to the same extent without using the SG interface? Say, using read() and write()? That'll help us determine whether the problem is related to the sg stuff, or to something else, like a hardware failure.
- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html