[gilug.org] Dispositius lents

marc tarres wanadoo es marc tarres wanadoo es
2004-08-20 15:56:57 UTC



Bones!



Últimament he estat trastejant bastant l'ordinador, sobretot arran de la compra d'un lector de DVD (i de propina, una regravadora de CDs nova). El fet de tornar a fer proves de hardware (trobar la millor combinació de posicions en els busos IDE) i de software (provar de gravar CDs de mil maneres diferents, i comprovar taxes de I/O dels dispositius), ha fet revifar un vell fantasma meu: la sensació que alguns dispositius, en Linux, van molt més lents (que no pas en Güindous, vull dir).



M'explico: abans, que feia anar el Win98 i tenia un CD-ROM 52x i una CD-RW 16-10-40x, gravava perfectament 'al vol' qualsevol tipus de CD (tant dades com CD-Audio). I a l'hora de copiar qualsevol cosa des d'una unitat de CD al disc dur, anava rapidíssim (sempre que el dispositiu tingués activada l'opció de Ultra-DMA, és clar). Al passar-me a Linux (Mandrake 9.1), vaig tenir molts problemes per gravar CDs (pel tema d'emulació SCSI, bàsicament), i vaig observar que els mateixos dispositius, tot i tenir activat el DMA, llegien les dades més lentament.



Ara vaig amb una MDK 10.0, i tinc un DVD 16x i una regravadora 52-32-52x [1]. Tot i que el tema de gravar CDs ha millorat molt amb el kernel nou, encara tinc l'impressió que amb Windows tot plegat anava més ràpid. Però el que tinc claríssim és que a l'hora de copiar del DVD (o de la gravadora) al disc dur, la cosa fa pena: tot i que les proves fetes amb l'hdparm [2] indiquen una taxa de lectura de més de 2MB/seg, a l'hora de copiar dades, aquestes només són llegides a poc més de 1MB/seg (això és menys de 10x!!).



I no només ho he observat amb dispositius de CD/DVD, també em passa el mateix amb una tarja USB de 256MB (Trascend JetFlash). D'això no en tinc dades, però és notable que a la feina (Win2000) el trasto va molt més ràpid que no pas a la màquina de casa.



Algú més ha observat coses semblants? És algun problema dels controladors/mòduls implicats (que els que duu Mandrake no siguin els més òptims per treure'ls-hi el màxim 'suc' als dispositius), o jo que sóc un sapastre i ho dec tenir mal configurat?



Merci per l'ajuda i/o comprensió (si a algú li passa el mateix i tampoc sap què fer :P), i salut!



Marc



PD: òbviament, els dos dispositius tenen activat el DMA, i també tenen aquests altres paràmetres [3], tot i que no sé què són... :S





[1] Info Dispositius



> [ marc]# hdparm -i /dev/hdb 

> 

> /dev/hdb:

> 

>  Model=HL-DT-STDVD-ROM GDR8163B, FwRev=0L14, SerialNo=

>  Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }

>  RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0

>  BuffType=unknown, BuffSize=0kB, MaxMultSect=0

>  (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0

>  IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

>  PIO modes:  pio0 pio1 pio2 pio3 pio4 

>  DMA modes:  sdma0 sdma1 sdma2 mdma0 mdma1 mdma2 

>  UDMA modes: udma0 udma1 *udma2 

>  AdvancedPM=no

>  Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a: 

> 

>  * signifies the current active mode

> 

> [ marc]# hdparm -i /dev/hdc

> 

> /dev/hdc:

> 

>  Model=HL-DT-ST GCE-8526B, FwRev=1.00, SerialNo=

>  Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }

>  RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0

>  BuffType=unknown, BuffSize=0kB, MaxMultSect=0

>  (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0

>  IORDY=yes, tPIO={min:227,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

>  Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a: 

> 

>  * signifies the current active mode

> 

> [ marc]# hdparm -I /dev/hdb 

> 

> /dev/hdb:

> 

> ATAPI CD-ROM, with removable media

>         Model Number:       HL-DT-STDVD-ROM GDR8163B                

>         Serial Number:      

>         Firmware Revision:  0L14    

> Standards:

>         Likely used CD-ROM ATAPI-1

> Configuration:

>         DRQ response: 50us.

>         Packet size: 12 bytes

> Capabilities:

>         LBA, IORDY(can be disabled)

>         DMA: sdma0 sdma1 sdma2 mdma0 mdma1 mdma2 udma0 udma1 *udma2 

>              Cycle time: min=120ns recommended=120ns

>         PIO: pio0 pio1 pio2 pio3 pio4 

>              Cycle time: no flow control=120ns  IORDY flow control=120ns

> Commands/features:

>         Enabled Supported:

>            *    NOP cmd

>            *    DEVICE RESET cmd

>            *    PACKET command feature set

>            *    Power Management feature set

> HW reset results:

>         CBLID- below Vih

>         Device num = 1

> 

> [ marc]# hdparm -I /dev/hdc 

> 

> /dev/hdc:

> 

> ATAPI CD-ROM, with removable media

>         Model Number:       HL-DT-ST GCE-8526B                      

>         Serial Number:      

>         Firmware Revision:  1.00    

> Standards:

>         Supported: CD-ROM ATAPI-3 -4 -5 -6 

> Configuration:

>         DRQ response: 50us.

>         Packet size: 12 bytes

> Capabilities:

>         LBA, IORDY(cannot be disabled)

>         DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2 

>              Cycle time: min=120ns recommended=120ns

>         PIO: pio0 pio1 pio2 pio3 pio4 

>              Cycle time: no flow control=227ns  IORDY flow control=120ns

> Commands/features:

>         Enabled Supported:

>                 DEVICE RESET cmd

>                 PACKET command feature set

> HW reset results:

>         CBLID- below Vih

>         Device num = 0





[2] Tests Dispositius



> ********

> * CDRW *

> ********

> 

> [ marc]# hdparm -t /dev/hdc 

> 

> /dev/hdc:

>  Timing buffered disk reads:   10 MB in  3.67 seconds =   2.73 MB/sec

> [ marc]# hdparm -t /dev/hdc 

> 

> /dev/hdc:

>  Timing buffered disk reads:   10 MB in  3.70 seconds =   2.70 MB/sec

> [ marc]# hdparm -t /dev/hdc 

> 

> /dev/hdc:

>  Timing buffered disk reads:    8 MB in  3.02 seconds =   2.65 MB/sec

> [ marc]# hdparm -t /dev/hdc 

> 

> /dev/hdc:

>  Timing buffered disk reads:    8 MB in  3.00 seconds =   2.67 MB/sec

> 

> (...)

> 

> 

> *******

> * DVD *

> *******

> 

> [ marc]# hdparm -t /dev/hdb

> 

> /dev/hdb:

>  Timing buffered disk reads:    8 MB in  3.16 seconds =   2.53 MB/sec

> 

> ### Sempre obtinc la mateixa taxa de lectura ###





[3] Paràmetres Dispositius



> [ marc]# hdparm -c /dev/hdb 

> 

> /dev/hdb:

>  IO_support   =  0 (default 16-bit)

> 

> [ marc]# hdparm -c /dev/hdc 

> 

> /dev/hdc:

>  IO_support   =  1 (32-bit)

> 

> [ marc]# hdparm -u /dev/hdb

> 

> /dev/hdb:

>  unmaskirq    =  0 (off)

> 

> [ marc]# hdparm -u /dev/hdc

> 

> /dev/hdc:

>  unmaskirq    =  1 (on)




Més informació sobre la llista de correu gilug