Re: 2.1.111: IDE DMA disabled...BLAH...BLAH...

Mark Lord (mlord@pobox.com)
Wed, 29 Jul 1998 07:02:20 -0400


Linus Torvalds wrote:
...
> Quite frankly, if you're not willing to fix the problem, I don' thave any
> other recourse than to disable the IDEDMA option. I refuse to ship kernels
> that have known instabilities, and I consider "tight timing" to be an
> instability.

That statement shows a basic mis-understanding of IDE that
is fairly common. Here is what you need to know to understand
why that logic is bogus:

1. Linux works with either of two types of IDE DMA: "DMA", and "UDMA".

2. UDMA uses 16-bit CRCs, and is far safer than regular DMA or PIO,
because of the added data-integrity check. If a system/drive can
use UDMA, the safest default is to try and use it. If UDMA fails,
do to incorrect timings, it is ALWAYS detectable, with a fallback to
PIO.
Thus, UDMA is a very safe default, better than PIO.

3. DMA (not UDMA) works with *exactly* the same timings as PIO.
Not "approximately", but *exactly* the same "tight timing" as PIO.
If corruption occurs due to a DMA timing problem, then the same
corruption is possible with PIO.

4. If for some reason PIO works, but DMA produces corruption
(there has never been a verified case of this yet),
then perhaps the only possible way this might occur would be due
to the IDE DMA controller performing burst PCI accesses during the
data transfer. Thus, the error would be on the PCI bus, rather
than in the IDE subsystem itself. Turning off IDE DMA may alleviate
the problem, but any other PCI burst activity will likely also result
in memory corruption for the same reason, eventually corrupting
filesystems.

>
> You should have noted that I at no time blamed the driver itself. I don't

Quoted from linux-2.1.111:

"# Either the DMA code is buggy or the DMA hardware is unreliable.
FIXME."

> have any gripes with the DMA code itself. The thing I consider to be a bug
> is that it enables it by default, even though we have reports of it
> corrupting disks on certain machines.

"We" do not have any such reports yet.
Perhaps "you" have some, thoughm, please pass them along.

I care about such things (I honestly do *care*),
but cannot fix that which nobody tells me about.

>
> The _only_ thing I ask for is that DMA be disabled by default, or at least
> disabled when there is any reasonable cause fr doubting the hardware.
> David Miller reports that certain windows drivers have a black-list, and
> that may be what we need to have. It certainly indicates that somebody
> else is aware of problems.

We have a fair bit of paranoia already, which is even more exclusive
than the Windows(95) blacklists.

> If you want to stick your head in the sand and ignore it, I can't do
> anything about that. I don't know the IDE driver well enough to start
> doing this, so I used a sledgehammer approach rather than trying to be
> subtle. I'd much prefer a subtle fix, but before the subtle fix is in
> place I won't remove the sledgehammer one.

Too bad, you used to be a nice guy.

-- 
mlord@pobox.com
The (ex-)Linux IDE guy

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html