Messages in this thread | | | Date | Tue, 13 Jan 2004 18:30:29 -0500 | From | Chuck Berg <> | Subject | Re: HPT372 DMA corruption |
| |
On Fri, Jan 09, 2004 at 03:24:28PM -0500, Richard B. Johnson wrote: [cmp -l bad good] > > 89260029 0 31 > > 89260030 0 327 > > 89260031 0 200 > > 89260032 0 13 > > Since whole bytes are not written, this looks strangely like > an attempt to DMA to cached RAM! Since the CPU didn't write
I tested this by reading with O_DIRECT, and immediately after each read(), read all of a 1MB array (my cache is only 256kB), and then checking the data. The same corruption occurs.
Via had a DMA corruption bug a couple years ago with similar symptoms, apparently with the VT82C686B southbridge. Mine is a VT82C586B (which some people also reported problems with). My board dates long after these problems were discovered, so I sure hope it's not the same bug. I'll try upgrading my BIOS to the latest version in case Soyo's changelog is not entirely honest.
I did learn some more about the pattern of corruption. The data is not being written to memory - the "bad" data is whatever happened to be there before. It usually happens in 4, but sometimes 64 or 32 byte chunks.
When I read from the device with O_DIRECT, the corruption only appears at the very end of the read. I've confirmed this for reads of 512 bytes through 256k at multiples of 512 bytes.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |