PDA

View Full Version : Hard Disk non oltre UDMA33


Exeba
17-07-2007, 21:15
Salve a tutti,
il problema si presenta sul mio portatile (acer aspire 5602) sia su Slackware 12 che su Arch, non sembra quindi che sia dovuto alla distribuzione di linux utilizzata.
Me ne sono accorto dando dmesg | grep UDMA e questo è l'output:

DMA 0 -> 4096
DMA zone: 32 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 4064 pages, LIFO batch:0
ide0: BM-DMA at 0x1880-0x1887, BIOS settings: hda: DMA, hdb: DMA
ide1: BM-DMA at 0x1888-0x188f, BIOS settings: hdc: pio, hdd: pio
hda: 156301488 sectors (80026 MB), CHS=16383/255/63, UDMA(33)
hdb: ATAPI 24X DVD-ROM DVD-R-RAM CD-R/RW drive, 2000kB Cache, UDMA(33)

Questo invece è quello che dice hdparm /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 = 16383/255/63, sectors = 156301488, start = 0

IO_support, anche se non ho la minima idea di cosa sia, riesco a impostarlo a 32bit, mentre non riesco a impostare UDMA>33.

Infatti dando hdparm -X udma3 /dev/hda ottengo:

/dev/hda:
setting xfermode to 67 (UltraDMA mode3)

Questo la prima volta mi ha illuso, tuttavia controllando che tutto fosse andato veramente a buon fine con dmesg, all'ultima riga leggo:
ide0: Speed warnings UDMA 3/4/5 is not functional.

Ho cercato in internet ma non sono riuscito a trovare niente e ho cambiato più di una volta qualche impostazione nel kernel senza successo; avete qualche idea?

ilsensine
18-07-2007, 08:11
Cosa ti fa pensare che il tuo sistema supporti effettivamente quelle velocità? In genere sui portatili i dischi operano a velocità inferiori.

Davide.Prina
18-07-2007, 08:52
Per verificare se il tuo hard disk stia usando UDMA devi usare il seguente comando:

# hdparm -i /dev/hda

gli asterischi sono messi sulle opzioni che sono attualmente attive

Per ulteriori dettagli su come migliorare le prestazioni del tuo hard disk e renderle definitive puoi leggere questo:
http://linguistico.sourceforge.net/wiki/doku.php?id=debian:velocizzare_il_proprio_sistema_operativo_e_usare_meno_risorse


Infatti dando hdparm -X udma3 /dev/hda ottengo:

/dev/hda:
setting xfermode to 67 (UltraDMA mode3)



con questo comando attivi l'UDMA, ma non rendi l'operazione permanente.
Fai i test come indicato nell'articolo che ho indicato per capire se effettivamente le prestazioni sono migliorate.
Attenzione che questa operazione è rischiosa perché se imposti qualcosa che il tuo hard disk non supporta potresti perdere dei dati.

Ciao
Davide

Exeba
18-07-2007, 09:23
Dunue:
Il mio disco è un THOSHIBA MK8032GAX, e stando a quello che ho trovato sul sito ufficiale supporta ATA-100.

Da hdparm -i /dev/hda risulta che effettivamente il disco lavora sempre in udma2, indipendentemente dai miei tentativi di morificare la modalità.

Per quanto riguarda gli ulteriori miglioramenti descritti sul sito, nonostante sia riuscito senza problemi a impostare i valori desiderati, non ho ottenuto alcun incremento apprezzabile (almeno da hdparm -t).
Le velocità è infatti sempre sui 27.xx Mb/sec, probabilmente dovuto alla limitazione di uDMA33.

Sto continuando a cercare in rete, ma senza successo.

ilsensine
18-07-2007, 09:35
L'udma100 per essere raggiunta richiede anche che il controller la supporti e il cavo sia adatto. Linux non limita la velocità per antipatia col tuo computer :D qualche motivo ci deve essere.
Per curiosità, se mi sai rispondere -- hai per caso idea se il tuo kernel è stato compilato con abilitata la voce "Ignore word93 validation bits"?

Exeba
18-07-2007, 09:44
Effettivamente ho dato per scontato che venga supportata dal controller e che il cavo sia adatto; ho provato a compilare il kernel sia con che senza quell'opzione ma senza risultati.
Ora sto cercando in internet informazioni sul mio controller, da lspci risulta
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
Se qualcuno lo conosce ...

ilsensine
18-07-2007, 09:56
Il controller è recente, dovrebbe supportarlo. A meno che non sia una versione limitata per i portatili...

Exeba
18-07-2007, 11:11
Ho dato una occhiata all'HD, che il problema sia il cavo è da escludere perchè non c'è, il disco è attaccato direttamente alla presa.
Non riesco a trovare informazioni precise relative al mio controller IDE

A meno che non sia una versione limitata per i portatili...

Inizio pensare che sia così, cosa che mi darebbe alquanto fastidio...

Rigranzio tutti dell'aiuto!

Cobra78
18-07-2007, 11:24
Strano però, io ho lo stesso controller

00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)


e a me esce questo:

/dev/sda:

Model=ST9120822A , FwRev=3.ALA , SerialNo= 5LZ0G4V0
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=?16?
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=234441648
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 udma3 udma4 *udma5
AdvancedPM=yes: unknown setting WriteCache=enabled
Drive conforms to: ATA/ATAPI-6 T13 1410D revision 2: ATA/ATAPI-1 ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6

* signifies the current active mode

Exeba
18-07-2007, 13:08
Piccola parentesi: gli output che avete visto fino ad ora sono relativi a slackware, archlinux presenta lo stesso problema anche se con output diversi.
Ad esempio al boot di arch leggo
Jul 16 23:03:07 myhost ata1: PATA max UDMA/133 cmd 0x000101f0 ctl 0x000103f6 bmdma 0x00011880 irq 14
Jul 16 23:03:07 myhost ata2: PATA max UDMA/133 cmd 0x00010170 ctl 0x00010376 bmdma 0x00011888 irq 15
Jul 16 23:03:07 myhost scsi0 : ata_piix
Jul 16 23:03:07 myhost ata1.00: ATA-6: TOSHIBA MK8032GAX, AD001A, max UDMA/100
Jul 16 23:03:07 myhost ata1.00: 156301488 sectors, multi 16: LBA48
Jul 16 23:03:07 myhost ata1.01: ATAPI, max UDMA/33
Jul 16 23:03:07 myhost ata1.00: configured for UDMA/33
Jul 16 23:03:07 myhost ata1.01: configured for UDMA/33

hdparm inoltre su Arch sembra non funzionare, ad esempio con hdparm -c1 /dev/sda ottengo:
/dev/sda:
setting 32-bit IO_support flag to 1
HDIO_SET_32BIT failed: Invalid argument
IO_support = 0 (default 16-bit)
e altri errori per qualsiasi altro comando che andasse a modificare le impostazioni del disco.
Tutto questo penso sia dovuto al fatto che su arch i dischi vengono visti come scsi.

Ultima cosa:
sia su slackware che su arch dando hdparm -i /dev/hda/sda all'ultima riga ottengo
Drive conforms to: Unspecified
potrebbe essere questo il problema, idee?

Davide.Prina
19-07-2007, 11:50
Per quanto riguarda gli ulteriori miglioramenti descritti sul sito, nonostante sia riuscito senza problemi a impostare i valori desiderati, non ho ottenuto alcun incremento apprezzabile (almeno da hdparm -t).


in effetti ho visto anch'io su un portatile ho avuto un incremento di circa l'1,1% ... mentre su un fisso ho avuto un incremento superiore al 10%

Ciao
Davide

Exeba
19-07-2007, 15:12
Sto procedendo con gli ultimi tentativi anche se ormai ci ho quasi rinunciato; sto compilando quasi tutto a moduli, in modo che possa caricare/rimuoverli a mio piacimento (magari è una questione di conflitti).
Quando avrò un pò di voglia magari provo a installare win su una partizioncina, se anche con win sarò bloccato a udma33 è al 99% questione di hardware.

Exeba
23-07-2007, 11:33
Voglio informarvi che ho risolto (anche se in maniera poco elegante) il problema, nel caso in questo forum qualcuno sia nella mia stessa situazione.

La limitazione è dovuta al driver (sia piix che ata_piix), che non riconosce il tipo di cavo ( nel mio caso 40 pin-corto, essendo l'hard disk collegato direttamente alla presa).

Sbirciando qua e la nella rete ho scoperto che sono state create delle patch ai driver, sia per piix che ata_piix, che tuttavia sembrano non funzionare nel mio caso.

Ho risolto comunque modificando il driver ata_piix, togliendo tutti i controlli sul tipo di cavo e impostando manualmente quello desiderato ( 80c), soluzione rozza ma funzionante.

Le prestazioni non sono migliorate granchè ( 30.xx mb/sec da hdparm), ma la soddisfazione è tanta :D

Se qualcuno volesse maggiori info o mi volesse aiutare a correggere come si deve il codice mi contatti in pvt.