PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : hdparm, IDE-Platte, Probleme mit DMA



jonah
31.01.09, 13:21
Hey!

Seit längerer Zeit beobachte ich auf diesem System, P3 1GHz, 1GB Ram, dass das gesamte System (crunchbang 8.04.02, basiert auf Ubuntu 8.10) stockt, sobald der Zugriff auf die Festplatte etwas intensiver wird.

Ich bin dann davon ausgegangen, dass für die IDE-Platte kein DMA aktiviert ist, also hab ich gedacht, dass ich das mal per hdparm aktiviere. Und das sieht dann folgendermaßen aus:


michi@havarien:~$ sudo hdparm -d1 /dev/sda

/dev/sda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device
HDIO_GET_DMA failed: Inappropriate ioctl for device
michi@havarien:~$


Ein hdparm -i /dev/sda zeigt mir folgendes:


michi@havarien:~$ sudo hdparm -i /dev/sda

/dev/sda:

Model=HDS728080PLAT20 , FwRev=PF2OA21B, SerialNo= PFD200S2R0ASXC
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=51
BuffType=DualPortCache, BuffSize=1719kB, 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 *udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: ATA/ATAPI-7 T13 1532D revision 1: ATA/ATAPI-2,3,4,5,6,7

* signifies the current active mode

michi@havarien:~$

Heisst das nun, obwohl ich DMA nicht einschalten kann, läuft die Platte schon im udma6 Mode? Also mit DMA?

Ich habe testweise zusätzlich ein Ubuntu 7.04 installiert, wo die Platte noch als /dev/hda erkannt wird, also nicht als "SCSI-Laufwerk". Da bricht die Performance auch bei intensiven Schreib-Lese Zugriffen nicht so zusammen.


Hier die relevante Teilausgabe von hwinfo:


12: PCI 11.1: 0101 IDE interface
[Created at pci.310]
UDI: /org/freedesktop/Hal/devices/pci_1106_571
Unique ID: +Y+h.xM2YGNSkZH3
SysFS ID: /devices/pci0000:00/0000:00:11.1
SysFS BusID: 0000:00:11.1
Hardware Class: storage
Model: "VIA VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE"
Vendor: pci 0x1106 "VIA Technologies, Inc."
Device: pci 0x0571 "VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE"
SubVendor: pci 0x1462 "Micro-Star International Co., Ltd."
SubDevice: pci 0x7230
Revision: 0x06
Driver: "pata_via"
Driver Modules: "pata_via"
I/O Ports: 0x1f0-0x1f7 (rw)
I/O Port: 0x3f6 (rw)
I/O Ports: 0x170-0x177 (rw)
I/O Port: 0x376 (rw)
I/O Ports: 0xe000-0xe00f (rw)
IRQ: 20 (no events)
Module Alias: "pci:v00001106d00000571sv00001462sd00007230bc01sc01 i8a"
Driver Info #0:
Driver Status: pata_via is active
Driver Activation Cmd: "modprobe pata_via"
Driver Info #1:
Driver Status: pata_acpi is active
Driver Activation Cmd: "modprobe pata_acpi"
Driver Info #2:
Driver Status: ata_generic is active
Driver Activation Cmd: "modprobe ata_generic"
Config Status: cfg=new, avail=yes, need=no, active=unknown


Hängt das irgendwie damit zusammen?

zyrusthc
31.01.09, 23:48
Teste doch mal mit dd lesen/schreiben. Anhand der Werte sollte man dann schon sehen ob DMA aktiv ist.
time dd if=/dev/zero of=datei bs=1M count=1024
time dd if=datei of=/dev/null


Greeez Oli

jonah
01.02.09, 13:13
Tag Oli!

Hier mal beide Ausgaben zu deinen Befehlen:


michi@havarien:~$ time dd if=/dev/zero of=datei bs=1M count=1024
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 28,1468 s, 38,1 MB/s

real 0m29.191s
user 0m0.016s
sys 0m19.273s
michi@havarien:~$ time dd if=datei of=/dev/null
2097152+0 Datensätze ein
2097152+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 22,0044 s, 48,8 MB/s

real 0m22.104s
user 0m2.036s
sys 0m12.305s
michi@havarien:~$

Was sagt der Herr dazu?:)

Rain_maker
01.02.09, 15:16
Das hier:



/dev/sda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device
HDIO_GET_DMA failed: Inappropriate ioctl for deviceist ganz normal und liegt daran, daß hdparm nun mal nur für IDE-Devices mit den "alten" Treibern gedacht ist, die neuen Treiber verwenden aber seit längerem (etwa seit linux 2.6.22) libata, weshalb nicht mehr alle Features von hdparm funktionieren.

Du kannst Dir mal "sdparm" ansehen.

DMA ist laut Ausgabe an (und ohne DMA hättest Du auch sicher keine 40-50 MB/Sekunde), ein "hdparm -i /dev/sda" wird Dir aber zumindest darüber etwas aussagen.

jonah
01.02.09, 16:10
Ola!

Ja, habe grade genau dasselbe rausgefunden. Ich danke euch beiden!:)

Noether
10.11.09, 16:32
Das hier:



/dev/sda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device
HDIO_GET_DMA failed: Inappropriate ioctl for deviceist ganz normal und liegt daran, daß hdparm nun mal nur für IDE-Devices mit den "alten" Treibern gedacht ist, die neuen Treiber verwenden aber seit längerem (etwa seit linux 2.6.22) libata, weshalb nicht mehr alle Features von hdparm funktionieren.

Du kannst Dir mal "sdparm" ansehen.


Ich finde beim sdparm nichts zum setzen vom DMA-Modus :(
Dabei habe ich das umgekehrte Problem, mit gleicher Fehermeldung von hdparm: Das BIOS zeigt zur HDD ein UDMA2-Modus an, aber Debian stellt beim Booten UDMA6 ein und korrumpiert mir damit das Dateisystem, wie ich auch an den Kernel-Meldungen sehe; eine Installation ist mir deshalb schon gestorben :mad:

Deshalb habe ich im BIOS das einzige eingestellt, was geht, nämlich kein 32-Bit-Modus, aber ein UDMA2-Modus beim Debian fehlt mir noch.
Kann man da nichts machen? :confused: