Re: [PATCH][RFC] ServerWorks autodma behavior

Ken Brownfield (brownfld@irridia.com)
Tue, 26 Feb 2002 04:19:24 -0600


On Tue, Feb 26, 2002 at 09:52:57AM +0000, Alan Cox wrote:
| > I have a lot of ServerWorks OSB4 IDE hardware, which has the annoyingly
| > suboptimal behavior of corrupting filesystems when DMA is active.
|
| With newer kernels you should get a panic because we spot the "I'm going
| to get 4 bytes stuck in the FIFO and DMA your inodes shifted 4 bytes down the
| disk behaviour" - at least in the cases I could study
|
| What set up do you have ?

These machines are Tyan Thunder LE (S2510) non-SCSI boards with Seagate
drives. Dual-P3.

| > Unfortunately, serverworks.c (in recent 2.4, at least) does not honor
| > the CONFIG_IDEDMA_AUTO config option -- it turns dma on only unless
| > "ide=nodma" is set on the kernel command line.
|
| You actually really to just turn off UDMA from experience.

Yeah -- but I'd like to be able to enable it if I need the performance
on a more DMA-able motherboard. Turning it off entirely would have
worked, of course.

| > if (hwif->dma_base) {
| > +#ifdef CONFIG_IDEDMA_AUTO
| > if (!noautodma)
| > hwif->autodma = 1;
| > +#endif
|
| I would have expected this to be a fix in the core code to ignore
| hwif->autodma but I'll admit I've not looked to see if that is practical.

That may be -- I was sticking with the obvious, least-invasive, least
IDE-core-clued evaluation. :) This is also the same treatment of
noautodma found in the VIA driver. The autodma setting from ide-pci
does seem to be correct -- deleting the code segment produces the same
DMA end-results, in the end, for ServerWorks.

Thanks much,

-- 
Ken.
brownfld@irridia.com

- 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/