PDA

View Full Version : il DMA si attiva automaticamente?


Cimi
22-09-2003, 15:01
SI attiva automaticamente il DMA sulla slack 9? xkè mi sta venendo un dubbio....

Beh come si fa a controllare ed eventualmente attivarlo?

maxithron
22-09-2003, 16:47
http://www.slack.z00.it/slack/docs/hdparm.html

Pang
22-09-2003, 18:26
Ho provato con quei comandi ma mi da 35,22mb/s di transfer rate, cioè come un ata33 :eek: ! Certo il mio hd non è proprio l'ultimo modello uscito, un maxtor 40gb 5400, però è ata100. Cosa potrebbe essere?

Pardo
22-09-2003, 18:59
100 megabyte/sec e` un valore irraggiungibille x un singolo disco.

L'interfaccia IDE puo` trasportare fino a 100 o 133 perche` possono esserci due periferiche che comunicano contemporaneamente (x 2 canali), magari con due dischi veramente buonissimi si potrebbe usare tutta la bandwidth.

cmq 35 e` normale... magari se fai il test a runlevel 1 ('init 1', provi, e poi 'init 5' x tornare normale) puoi arrivare a un po' di piu` visto che normalmente un minimo di carico x i vari processi c'e`.
Pure io ho un maxtor da 40 GB ata100 e il test di hdparm fatto in condizioni normali mi spara fuori intorno a 35, a runlevel 1 invece arriva un po piu` su forse 40 o 50


cmq per sapere con certezza la modalita` in cui sta andando usa

hdparm -I /dev/hda | more

nella massa di informazioni c'e` una linea tipo questa

DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6

con l'asterisco e` indicata quella in cui sta funzionando
per modificarla eventualmente si usa

hdparm -X udma6 /dev/hda

questo va inserito in qualche script di inizializzazione del sistema visto che non e` una cosa permanente, tipo /etc/rc.d/rc.local se e` una redhat o mandrakane


oltre alla modalita` dma ci sono anche molte altre info utili tipo

R/W multiple sector transfer: Max = 16 Current = 16

in questo il valore 'current' dovrebbe essere uguale al Max, altrimenti si modifica con 'hdparm -m XX /dev/hda'


E poi sotto nelle 'features' sicuramente dovrebbe essere attivata la write cache, in caso di no si attiva con -W1.


anche con hdparm /dev/hda senza parametri spara fuori altri settings che dovrebbero essere attivi ma suppongo c siano anche in quella pagina linkata nei post precedenti

#!/bin/sh
22-09-2003, 19:03
Originariamente inviato da Pang
Ho provato con quei comandi ma mi da 35,22mb/s di transfer rate, cioè come un ata33 :eek: ! Certo il mio hd non è proprio l'ultimo modello uscito, un maxtor 40gb 5400, però è ata100. Cosa potrebbe essere?

Non confondere il transfert rate dell'hd con la velocità dell'interfaccia con cui è collegato. Il tuo disco è collegato opera in modalità ata 100: vuol dire che il controller eide gestisce un flusso massimo di 100mb al secondo, ma il tuo disco fornisce al controller dati a 35,22mb/sec al secondo, che è un valore molto buono. Magari i dischi sparassero fuori la roba a 100mb/sec.

Pang
22-09-2003, 19:16
Chiarissimi! Un enorme grazie a entrambi:) !

Ciao

gokan
22-09-2003, 19:50
Originariamente inviato da Cimi
SI attiva automaticamente il DMA sulla slack 9? xkè mi sta venendo un dubbio....

Beh come si fa a controllare ed eventualmente attivarlo?
Sulla Slack 9 è attivato di dafault (sia per i dischi sia per cdrom e varie).

hdparm /dev/hdX
per controllare (X sta per a,b,c...)

ShadowThrone
22-09-2003, 21:46
non mi funge, ho mandrake 9.1 e i driver nforce per linux
ho un western digital (hda, udma5) ata 100, 80 gb, 8 mb cache
e un maxtor (hdb, udma6), ata 133, 30 gb, 2 mb cache
per tutti e due setto :

hdparm -c 1 -d 1 /dev/hda
risposta :
/dev/hda:
setting 32-bit IO_support flag to 1
setting using_dma to 1 (on)
IO_support = 1 (32-bit)
using_dma = 1 (on)

hdparm -c 1 -d 1 /dev/hdb
risposta :
/dev/hdb:
setting 32-bit IO_support flag to 1
setting using_dma to 1 (on)
IO_support = 1 (32-bit)
using_dma = 1 (on)

facendo un :
hdparm -I /dev/hda | more

li ritrovo tutti e due settati a udma2.
DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5

allora, eseguo :
hdparm -X udma5 /dev/hda
hdparm -X udma6 /dev/hdb

rieseguo :
hdparm -I /dev/hda | more
e sono sempre settati a udma2 ...
DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5

non capisco il perchè! :confused: