Re: Limiting DMA speeds for individual IDE drives

From: Alan Cox
Date: Tue Sep 08 2009 - 13:51:58 EST


> I've got a situation where a drive claims to be capable of supporting
> UDMA/100, but it's in a noisy environment and gets lots of errors at
> that speed. I'd like to limit it to UDMA/66 or even UDMA/33.

That should never occur with a proper cable and I would be concerned the
fault might be something more problematic such as speed misconfiguration
or an incompatibility. Which driver is in use ?

> The hdparm command should be able to do this but I can't run it until
> the system has booted, by which time a bunch of CRC and possibly other
> errors have already occurred. Ideally it should be possible to limit

Only the data transfers are CRC protected and at high speed, but noise at
low speed would be a real concern as the commands are sent low speed but
without protection on PATA devices - so a bit flip can send a DMA to the
wrong sector.

> the speed starting as early as device detection, but I can't find any
> way to do it. Is there support for such a thing or will I have to hack
> it in?

You can disallow DMA but not clip DMA to UDMA33 with the old driver. You
could disallow DMA at boot and reallow it with a speed set by hdparm in
your boot scripts...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/