On 2007.01.18 18:09:50 -0600, Robert Hancock wrote: > I heard from Larry Walton who was apparently seeing this problem as > well. He tried my recent "sata_nv: cleanup ADMA error handling v2" patch > and originally thought it fixed the problem, but it turned out to only > make it happen less often. > > I wouldn't expect that patch to have an effect on this problem. If it > seems to reduce the frequency that would tend to be further evidence of > some kind of timing-related issue where the code change just happens > to make a difference. > > I'll see if I can come up with a debug patch for people having this > problem to try, which prints out when a flush command is issued and what > interrupts happen when a flush is pending. > > There is one important difference between ADMA and non-ADMA mode for > non-DMA commands like flushes, which didn't come to mind before: ADMA > mode uses MMIO registers on the controller whereas non-ADMA mode uses > legacy IO registers. Posted write flushing is a concern with MMIO > registers but not with PIO, the libata core is supposed to handle this > but maybe it doesn't in some case(s). In fact, just looking at > libata-sff.c there's this comment on the ata_exec_command_mmio function: > > * FIXME: missing write posting for 400nS delay enforcement > > That seems a bit suspicious..
That would imply that disabling adma via a module parameter should make the issue go away, right? I'll try to have a test run with adma disabled over night then. Thanks, Björn - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/