Newsgroup: it.comp.os.linux.sys
Titolo: hdparm e DMA

Salve a tutti ,
vorrei qualche chiarimento sul come si possa , e sull'eventuale 
pericolosità , attivare il supporto DMA dei dischi .
ho 3 dischi :
/dev/hda con 3 partizioni (/ , /home e swap)
/dev/hde e /dev/hdg in raid-1 /dev/md0 su un controller adaptec ATA raid
Qua sotto ci sono alcuni "test" fatti con hdparm , che dimostrano che 
tutti i dischi supportano il DMA ma che in nessuno è attivato.
Vorrei sapere se è possibile attivare l'accesso DMA senza comprometterne 
i dati eventualmente presenti , passi per /dev/hda (che contiene Linux) 
, ma quantomeno velocizzare il Raid-1 che così è un po' lento...
Posso fare 'hdparm -d1 /dev/hde' o comprometterei tutto ?
(Ovviamente fermerei il raid su /dev/md0 e smonterei i dischi che lo 
compongono)
spero che possiate darmi qualche suggerimento .
grazie
oOo razzo oOo
"Immagino la sua mano che si avvicina a me, affusolata,leggera,esperta..
..dev'essere così che mi hanno inculato il portafoglio!"
<HDPARM>
linux:/home/razzo # hdparm /dev/hda
/dev/hda:
 multcount    = 16 (on)
 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    =  8 (on)
 geometry     = 4866/255/63, sectors = 78177792, start = 0
linux:/home/razzo # hdparm -i /dev/hda
/dev/hda:
 Model=MAXTOR 6L040J2, FwRev=AR1.0500, SerialNo=662206342428
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=32256, SectSize=21298, ECCbytes=4
 BuffType=DualPortCache, BuffSize=1818kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78177792
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: ATA/ATAPI-5 T13 1321D revision 1:  1 2 3 4 5
/*
* /dev/hde e /dev/hdg sono uguali
*/
linux:/home/razzo # hdparm /dev/hde
/dev/hde:
 multcount    = 16 (on)
 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    =  8 (on)
 geometry     = 159560/16/63, sectors = 160836480, start = 0
linux:/home/razzo # hdparm -i /dev/hde
/dev/hde:
 Model=IC35L080AVVA07-0, FwRev=VA4OA52A, SerialNo=VNC402A4GY7ASG
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=52
 BuffType=DualPortCache, BuffSize=1863kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=160836480
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5
 AdvancedPM=yes: disabled (255) WriteCache=enabled
 Drive conforms to: ATA/ATAPI-5 T13 1321D revision 1:  2 3 4 5
</HDPARM>

 -d1 /dev/hde' o comprometterei tutto ?
Questo  lo  puoi  fare  tranquillamente,  anche  con  i  dischi  montati
(ovviamente sempre che non venga  forzata una modalita` non supportata).
Puoi anche  attivare il supporto per  I/O a 32bit in  modo da migliorare
l'efficienza del bus PCI.
Hai compilato il supporto per il  tuo chipset? Il DMA non e` attivo solo
quando viene usato il driver IDE generico.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Porc i' mond che cio' sott i piedi!
V. Catozzo

 
pericoloso non credo lo sia.
attivarlo penso che ti farà solo che bene
(non aspettarti faville cmq).
non attivarlo dal tuo sistema normale.
avvia da floppy e attiva il DMA sui due dischi,
poi fai il boot normale e verifica che effettivamente
sia attivato
-- 
Denis
WebMaster di 
www.casafiorita.it

 
La configurazione del kernel , stando a quello che mi mostra il centro 
di controllo del kde , dovrebbe essere già predisposta ad usare il DMA 
, infatti le seguenti "voci" sono attive :
ATA/IDE/MFM/RLL support :
...
[*]     Generic PCI bus-master DMA support
...
[*]       Use PCI DMA by default when available
quindi seguirò i vs consigli (avvierò da floppy x sicurezza , fermerò e 
smonterò i raid e attiverò il supporto dma)
..ancora una domandina ve la faccio però ... :
come faccio a sapere se posso supportare l'I/O a 32 bit ?
..so come (eventualmente) abilitarne il supporto ma non so vedere se è 
supportato o meno.
grazie e ciao

 grazie e ciao
ciao

>(non aspettarti faville cmq).
Fantastico , scusate se posto qui la mia contentezza , ma dopo aver 
attivato il DMA sul raid , i dischi sono veramente molto più veloci. 
<PRIMA>
linux:/home/razzo # hdparm -Tt /dev/hde
/dev/hde:
 Timing buffer-cache reads:   128 MB in  0.54 seconds =237.04 MB/sec
 Timing buffered disk reads:  64 MB in 32.44 seconds =  1.97 MB/sec
</PRIMA>
<DOPO>
linux:/home/razzo # hdparm -Tt /dev/hde
/dev/hde:
 Timing buffer-cache reads:   128 MB in  0.56 seconds =228.57 MB/sec
 Timing buffered disk reads:  64 MB in  1.42 seconds = 45.07 MB/sec
</DOPO>
:D
grazie e ciao

 supportato o meno.
Puoi provare  con l'opzione -c3. Se  hdparm risponde con  "Operation not
permitted" allora non  puoi usarlo. Se invece funziona  puoi provare con
l'opzione  -c1 (che  potrebbe pero`  dare  problemi con  i chipset  piu`
datati).
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"It is more complicated than you think"
                -- The Eighth Networking Truth from RFC 1925

 Kronos
grazie e ciao
oOo razzo oOo