Tunig für Festplatten

Linux: DMA-Modus für IDE-Laufwerke aktivieren

Der DMA-Modus

Der DMA-Modus ermöglicht eine besonders effiziente Datenübertragung zwischen IDE-Festplatten (sowie CD-ROM-oder DVD-Laufwerken) und dem Hauptspeicher. Die Übertragung erfolgt dabei nicht Byte für Byte über die CPU, sondern über einen DMA-Kanal (Direct Memory Access). Es wird also eine vorübergehende direkte Verbindung zwischen der Festplatte und dem Hauptspeicher hergestellt; die Übertragung wird durch den DMA-Controller gesteuert. Die Vorteile des DMA-Modus sind offensichtlich: die Datenübertragungsrate ist deutlich höher, gleichzeitig sinkt die CPU-Belastung beim Laden und Speichern großer Dateien. Der DMA-Modus ist notwendig, um IDE-Festplatten in optimaler Geschwindigkeit zu nutzen.

Wenn Sie mit aktueller Hardware und einer gängigen Linux-Distribution arbeiten, wird der DMA-Modus meist per Default aktiviert, und Sie müssen sich um nichts mehr zu kümmern. Immer ist das aber nicht der Fall: Selbst wenn alle Voraussetzungen für den DMA-Betrieb erfüllt sind (siehe unten), wird der DMA-Modus je nach Distribution, Kernel-Version bzw. Mainboard nicht automatisch aktiviert.

Der Grund: Der DMA-Modus kann in manchen Fällen zu Problemen mit der Zuverlässigkeit führen. Besonders problematisch ist die Verwendung des DMA-Modus bei CD- und DVD-Laufwerken. Die Ursachen sind meist schwer zu finden. Beispielsweise erlaubt die Spezifikation nur Festplattenkabel bis zu 45 cm Länge. Fast in jedem Rechner sind die Kabel länger. (Meistens funktioniert DMA dennoch, aber dafür gibt es keine Garantie.)

Aus diesen Gründen sollten Sie eigene Experimente mit dem DMA-Modus mit Vorsicht durchführen. Führen Sie vorher umount für alle nicht benötigten Partitionen aus. Umgekehrt gilt: Wenn Sie auf Ihrem Rechner Stabilitätsprobleme haben, deaktivieren Sie den DMA-Modus explizit, bis Sie sicher sind, dass Sie den DMA-Modus als Fehlerursache ausschließen können.

DMA funktioniert selbstverständlich auch mit den meisten SCSI-Controllern. Dort ist DMA allerdings ein seit langem genutztes Feature, das nicht extra aktiviert werden muss.

Weitere Informationen zum Thema Linux und DMA finden Sie im man-Text zu hdparm, in den Kommentaren von ide-dma.c (Kernelcode) sowie im UDMA-HOWTO und auf der Intel-Developers-Homepage:
/usr/src/linux/drivers/ide/ide-dma.c
http://www.tldp.org/HOWTO/Ultra-DMA.html
http://developer.intel.com/design/chipsets/drivers/busmastr/