DMA - Direct Memory Access

Avec hdparm...
samedi 30 octobre 2004
par  Yvonnick Esnault
popularité : 1%

Le disque dur IDE de votre PC n’est pas assez rapide à votre goût. Les jeux se trainent... Quelques réglages à apporter au disque via l’utilitaire hdparm et votre PC gagnera en rapidité. Petites explications sur l’activation du mode dma.

Vous n’avez pas activé le dma (Direct Master Access)pour votre disque ? Alors ça traine (on s’en rend plus compte sur les disques d’ordinateurs portables qui sont moins rapides que les disques de PC de bureau).

Attention : une mauvaise utilisation des paramètres de hdparm peuvent endommager votre disque dur. Vous voilà donc prévenus.

Pour vérifier que le dma de votre disque dur est activé, ouvrez un terminal et basculez sur le compte root. Saisissez la commande suivante :

# hdparm /dev/hda

Si une erreur s’affiche, par exemple command not found ou si vous voyez using_dma  =  0 (no), Le programme hdparm n’est pas installé ou le disque dur de l’ordinateur n’accepte pas les accès dma.

Sous Debian

Pour corriger cela, lancez les commandes :

# apt-get install hdparm (sous debian)
# hdparm -d 1 /dev/hda

- 1 pour activer le dma
- 0 pour désactiver le dma

=> Mais en fait, ça a fait planter ma machine (pendant une compile de x.org). Donc vaut mieux bénéficier de l’accélération du disque dur dès le démarrage du PC.
Dans le fichier ’/etc/hdparm.conf, vous devez avoir quelque chose comme :

/dev/hda {
 dma = on
}

Pour cet article, le disque dur est le disque maître connecté sur la première nappe IDE de votre ordinateur. Si votre PC possède plusieurs disques, copier le bloc et changez le a par b (disque esclave de la première nappe IDE) ou c (disque maître de la seconde nappe IDE)...

Puis tester si les modifications ont été prises en compte, tapez la commande :

# hdparm /dev/hda

Chez moi, ça donne :

# hdparm /dev/hda

/dev/hda:
multcount    =  0 (off)
IO_support   =  0 (default 16-bit)
unmaskirq    =  0 (off)
using_dma    =  1 (on)
keepsettings =  0 (off)
readonly     =  0 (off)
readahead    = 256 (on)
geometry     = 65535/16/63, sectors = 60011642880, start = 0

Avec Mandrake

Avec une Mandrake 10.0, pour activer dès le démarrage l’activation du dma, éditez le fichier /etc/sysconfig/harddisks à l’aide d’un éditeur de texte. Puis, supprimez ou ajoutez le caractère # en face des paramètres que vous souhaitez respectivement activer ou désactiver.

[fred@station3 fred]$ less /etc/sysconfig/harddisks

# These options are used to tune the hard drives -
# read the hdparm man page for more information

# Set this to 1 to enable DMA. This might cause some
# data corruption on certain chipset / hard drive
# combinations. This is used with the "-d" option

USE_DMA=1

# Multiple sector I/O. a feature of most modern IDE hard drives,
# permitting the transfer of multiple sectors per I/O interrupt,
# rather than the usual one sector per interrupt.  When this feature
# is enabled, it typically reduces operating system overhead for disk
# I/O by 30-50%.  On many systems, it also provides increased data
# throughput of anywhere from 5% to 50%.  Some drives, however (most
# notably the WD Caviar series), seem to run slower with multiple mode
# enabled. Under rare circumstances, such failures can result in
# massive filesystem corruption. USE WITH CAUTION AND BACKUP.
# This is the sector count for multiple sector I/O - the "-m" option
#
#MULTIPLE_IO=16

# (E)IDE 32-bit I/O support (to interface card)
#
EIDE_32BIT=3

# Enable drive read-lookahead
#
LOOKAHEAD=1

# Add extra parameters here if wanted
# On reasonably new hardware, you may want to try -X66, -X67 or -X68
# Other flags you might want to experiment with are -u1, -a and -m
# See the hdparm manpage (man hdparm) for details and more options.
#
EXTRA_PARAMS=

Après avoir enregistré le fichier et redémarré le PC, testez l’activation du dma avec hdparm /dev/hda et la rapidité de votre disque dur à l’aide de hdparm -t /dev/hda.

[fred@station3 fred]$ su - -c "hdparm -t /dev/hda"
Password:

/dev/hda:
Timing buffered disk reads:  114 MB in  3.04 seconds =  37.54 MB/sec

Avec SuSE

Lancez l’outil d’administration yast. Puis, optez pour la catégorie Matériel et double cliquez sur Mode DMA IDE.

Sélectionnez ensuite le disque dur ou le lecteur de CD/DVD à accélérer et dans la liste déroulante Mode DMA choisissez DMA actif (mode par défaut) ou UltraDMA/66. Validez par un clic sur le bouton Terminer. Redémarrez ensuite la machine avant de tester l’activation du dma et la vitesse des périphériques.

PNG - 32.7 ko

Notez que dans /etc/sysconfig/ide, vous retrouverez les informations associées à la configuration des disques durs ou des lecteurs.

fred@mandy : > less /etc/sysconfig/ide

## Path:                Hardware/IDE
## Description:         IDE device settings
## Type:                string
## Default:             ""
## ServiceRestart:      boot.idedma
#
# Force DMA mode for selected device. Use pairs <device>:<dma_mode> separated
# by space - dma_mode can be "on" (enable default DMA mode), "off" (disable DMA
# mode) or any mode supported by hdparm (e.g. "mdma2", "udma5", ...)
# Example: "/dev/hdc:off /dev/hdd:udma2"
#
DEVICES_FORCE_IDE_DMA="/dev/hda:on /dev/hdc:on /dev/hdd:on"

Pour en savoir plus sur hdparm, en particulier sous Debian, consultez la page
http://www.andesi.org/index.php?node=42


Commentaires

Annonces

Annuaire LibreNord

Retrouvez l’annuaire de logiciels libres créé par l’association Club Linux Nord-Pas de Calais sur le site suivant http://www.librenord.org