Re: 2.1.111: IDE DMA disabled?

Linus Torvalds (
Sun, 26 Jul 1998 12:47:22 -0700 (PDT)

On Sun, 26 Jul 1998, Alan Cox wrote:
> You haven't even attempted to measure the "does turning DMA off cause
> problems" case. Currently Im trying to measure them all. The more messages
> I get from people detailing corruption cases the better.

I don't need to "measure" it.

I have a very clear report of a person who could reproduce the behaviour
at will.

It went away when he turned off IDEDMA.

To prove a theory you need lots of people. To _disprove_ something you
only need a single case.

And yes, he couldn't reproduce it at will without SMP. Which may mean that
there is a SMP problem, but is equally likely to mean that with SMP
enabled the machine had enough memory load that the DMA problems started
occurring because the timings were so tight.

> Or just run FreeBSD, which doesn't seem to be having any such problems.

Or has about .5% of the user base. Yes.

Do you remember the problems we had with interrupts enabled during data
transfers? It was a real problem, and again "just run FreeBSD, it doesn't
have the problem" came up as a solution. Sure, it doesn't have the
problem, because it doesn't have the hardware or the user base.

Anyway, I'm still open to the possibility that it's something else. It
could be extremely timing-dependent, and the person who could reproduce
his corruption easily might just have "just the right timings" until he
turned off IDE-DMA.

BUT: Whatever you claim, there _have_ been pervasive reports about
problems with IDE-DMA, for a long time. I've asked people to turn of DMA
before, exactly because the rumors have been there. We _know_ that our IDE
driver seems to be much too timing-sensitive for some reason, without ever
reporting errors even when they happen. Whether that's hardware or the
driver is secondary - the fact is that problems have magically gone away
when IDEDMA is turned off or when using a shorter cable.

And yes, in the Free/NetBSD camp it _is_ acceptable to say "don't use too
long a cable". That's the kind of mentality they have. With Linux,
however, we want to get people who have never in their life opened their
machine, and don't know whether the IDE spec says the cable can be 11" or
14" long. To those kinds of users the only right behaviour is to default
to the safest possible combination, and then allow the technical users the
possibility to (a) check that their hardware is ok and (b) turn on the
aggressive modes.

In short, you should not force users to have cutting-edge hardware. You
should not live at the edge of the spec software-wise, because you know
there is hardware out there that is sub-spec. A good driver takes sub-spec
hardware into account, whereas a bad drivers says "your hardware is
sub-spec, so screw you".


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at