Linux 15.012 Themen, 106.877 Beiträge

DMA aktivieren

Synthetic_codes / 27 Antworten / Flachansicht Nickles

Moinsen allseits

vor kurzem bin ich mit 3 Freunden von einem vServer auf einen Rootserver umgezogen.
Nachdem der root fertig war, wollten wir die Benutzerprofile migrieren.
Beim kopieren der Dateien(mittels ftp über die Midnight commander oberfläche) fiel mir die miserable datenrate von 900kb/sec auf. Ich dachte mir dass das wohl an vorübergehenden Carrier problemen liegen könnte, und vertagte das ganze. am abend probierte ich es erneut, und wieder nur 900kb. also testete ich den download per ftp von einem neutralen server(in den usa, da liegt mein hosting paket). Der vserver übertrug das 1GB Testfile mit knapp 9MB/sekunde.
der rootserver hingegen wieder nur mit 900k-1MB. daraufhin war klar es liegt am root. ein hdparm -t /dev/hda schlug fehl, da hdparm in der grundkonfiguration des servers fehlte. schnell per apt geholt, test gemacht und siehe da... die platte schaufelte die daten nur mit 1.8mb/sec.
dann habe ich mir die konfiguration der platte angesehen mit
hdparm -i /dev/hda
dies zeigte mir an, dass die platte im 16bit modus ohne DMA läuft
also habe ich zuerst den 32 bit modus angeschaltet mit
hdparm -c1 /dev/hda
was den durchsatz der platte auf 4MB/s anhob
und daraufhin den DMA Modus mit hdparm -d1 /dev/hda

und hier beginnt die krux:

nx-net:~# hdparm -d1 /dev/hda

/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)


okay, google ist dein freund dachte ich mir und guugelte ein bissel nach
wie es scheint, muss das kernelmodul für den IDE Controller geladen werden.

hier mal ein output von lspci -v:

nx-net:~# lspci -v
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 741/741GX/M741 Host (rev 0 3)
Subsystem: ASRock Incorporation Unknown device 0741
Flags: bus master, medium devsel, latency 0
Memory at d0000000 (32-bit, non-prefetchable) [size=64M]
Capabilities: [c0] AGP version 3.5

00:01.0 PCI bridge: Silicon Integrated Systems [SiS] SiS AGP Port (virtual PCI-t o-PCI bridge) (prog-if 00 [Normal decode])
Flags: bus master, 66MHz, fast devsel, latency 32
Bus: primary=00, secondary=01, subordinate=02, sec-latency=32
I/O behind bridge: 0000c000-0000cfff
Memory behind bridge: cfd00000-cfefffff
Prefetchable memory behind bridge: bfa00000-cfbfffff

00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS963 [MuTIOL Media IO] (r ev 25)
Flags: bus master, medium devsel, latency 0

00:02.1 SMBus: Silicon Integrated Systems [SiS] SiS961/2 SMBus Controller
Flags: medium devsel
I/O ports at 0c00 [size=32]

00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (prog-if 80 [ Master])
Subsystem: ASRock Incorporation Unknown device 5513
Flags: bus master, medium devsel, latency 128
I/O ports at ff00 [size=16]

00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Et hernet (rev 90)
Subsystem: ASRock Incorporation Unknown device 0900
Flags: bus master, medium devsel, latency 32, IRQ 10
I/O ports at dc00 [size=256]
Memory at cfffb000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at cffc0000 [disabled] [size=128K]
Capabilities: [40] Power Management version 2

01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 661/741/760/ 761 PCI/AGP VGA Display Adapter (prog-if 00 [VGA])
Subsystem: ASRock Incorporation Unknown device 6331
Flags: 66MHz, medium devsel, IRQ 11
BIST result: 00
Memory at c0000000 (32-bit, prefetchable) [size=128M]
Memory at cfee0000 (32-bit, non-prefetchable) [size=128K]
I/O ports at cc00 [size=128]
Capabilities: [40] Power Management version 2
Capabilities: [50] AGP version 3.0



und ein output von lsmod

nx-net:~# lsmod
Module Size Used by
ipv6 228320 70
loop 15496 0
analog 11104 0
rtc 12788 0
i2c_sis96x 5700 0
sis_agp 8708 1
agpgart 30216 1 sis_agp
gameport 14920 1 analog
evdev 9408 1
parport_pc 32612 0
parport 33672 1 parport_pc
pcspkr 3392 0
i2c_core 20096 1 i2c_sis96x
shpchp 33312 0
pci_hotplug 29056 1 shpchp
floppy 53668 0
ide_disk 15168 3
processor 29128 0
3c59x 40808 0
3c509 12116 0
sky2 37252 0
skge 35152 0
natsemi 25632 0
bnx2 77104 0
b44 24716 0
netconsole 3744 0
ne2k_pci 11040 0
8390 9728 1 ne2k_pci
8139too 25600 0
e1000 109376 0
e100 32904 0
sis900 22080 0
via_rhine 23112 0
mii 5696 6 3c59x,b44,8139too,e100,sis900,via_rhine
forcedeth 38788 0
r8169 28872 0
ext2 59784 0
ext3 120584 1
jbd 52968 1 ext3
mbcache 8644 2 ext2,ext3
sd_mod 19456 0
linear 6080 0
raid456 115984 0
xor 14536 1 raid456
raid10 22080 0
raid1 21632 0
raid0 8064 0
faulty 4416 0
multipath 8576 0
md_mod 71060 7 linear,raid456,raid10,raid1,raid0,faulty,multipath
dm_zero 2560 0
dm_mirror 19600 0
dm_snapshot 15904 0
dm_emc 6272 0
dm_round_robin 3648 0
dm_multipath 17032 2 dm_emc,dm_round_robin
dm_crypt 11272 0
dm_mod 50776 5 dm_zero,dm_mirror,dm_snapshot,dm_multipath,dm_crypt
iscsi_tcp 22848 0
libiscsi 22848 1 iscsi_tcp
scsi_transport_iscsi 27532 2 iscsi_tcp,libiscsi
raid_class 6272 0
sata_vsc 9156 0
sata_via 10372 0
sata_uli 8324 0
sata_sx4 13636 0
sata_svw 8452 0
sata_sis 8644 0
sata_sil 11784 0
sata_sil24 14788 0
sata_qstor 9860 0
sata_promise 11972 0
sata_nv 11332 0
sata_mv 18248 0
ata_piix 14216 0
ahci 18372 0
libata 90772 14 sata_vsc,sata_via,sata_uli,sata_sx4,sata_svw,sata_sis,sata_sil,sata_sil24,sata_qstor,sata_promise,sata_nv,sata_mv,ata_piix,ahci
3w_xxxx 25248 0
3w_9xxx 30596 0
scsi_mod 124872 9 sd_mod,iscsi_tcp,libiscsi,scsi_transport_iscsi,raid_class,ahci,libata,3w_xxxx,3w_9xxx
piix 9732 0 [permanent]
sis5513 12680 0 [permanent]
via82cxxx 8708 0 [permanent]
ide_generic 1728 0 [permanent]
ide_core 110984 5 ide_disk,piix,sis5513,via82cxxx,ide_generic


Die Frage die ich nun habe... ist das modul bereits geladen?
wenn ja woran könnte es sonst noch liegen dass ich DMA nicht einschalten kann(die platte ist laut hdparm udma5 fähig)
falls das modul nicht geladen ist: wie lautet der name für das passende modul, und wo kriege ich es(falls es nicht schon mit dem kernel kam) her?

'); DROP TABLE users;--
bei Antwort benachrichtigen
KarstenW Synthetic_codes „der etchnhalf kernel führt ebenso zu einem nicht startenden system. ursache:...“
Optionen

Ich habe hier Debian lenny mit einem Linuxkernel 2.6.26 und habe unter

Device Drivers-->ATA/ATAPI/MFM/RLL support--->;SiS5513 chipset support folgende Erklärung gefunden:

SiS5513 chipset support
CONFIG_BLK_DEV_SIS5513:

This driver ensures (U)DMA support for SIS5513 chipset family based
mainboards.

The following chipsets are supported:
ATA16: SiS5511, SiS5513
ATA33: SiS5591, SiS5597, SiS5598, SiS5600
ATA66: SiS530, SiS540, SiS620, SiS630, SiS640
ATA100: SiS635, SiS645, SiS650, SiS730, SiS735, SiS740,
SiS745, SiS750

Please read the comments at the top of file:drivers/ide/pci/sis5513.c

Wie es ausschaut wird nur ATA 16 unterstützt und nicht ATA 100 oder ATA 133. Deshalb ist wahrscheinlich auch die Datentransferrate so langsam. Also SiS scheint keine so gute Wahl zu sein. Ich würde NForce Chipsätze von NVidia bevorzugen. Frage doch mal den Hoster ob er auch einen Server mit NForce Chipsätzen von Nvidia hat.




/usr/src/linux-source-2.6.26/drivers/ide/pci# cat sis5513.c

.....


* Original tests and design on the SiS620 chipset.
* ATA100 tests and design on the SiS735 chipset.
* ATA16/33 support from specs
* ATA133 support for SiS961/962 by L.C. Chang <lcchang@sis.com.tw>
* ATA133 961/962/963 fixes by Vojtech Pavlik <vojtech@suse.cz>
*
* Documentation:
* SiS chipset documentation available under NDA to companies only
* (not to individuals).
*/

/*
* The original SiS5513 comes from a SiS5511/55112/5513 chipset. The original
* SiS5513 was also used in the SiS5596/5513 chipset. Thus if we see a SiS5511
* or SiS5596, we can assume we see the first MWDMA-16 capable SiS5513 chip.
*
* Later SiS chipsets integrated the 5513 functionality into the NorthBridge,
* starting with SiS5571 and up to SiS745. The PCI ID didn't change, though. We
* can figure out that we have a more modern and more capable 5513 by looking
* for the respective NorthBridge IDs.
*
* Even later (96x family) SiS chipsets use the MuTIOL link and place the 5513
* into the SouthBrige. Here we cannot rely on looking up the NorthBridge PCI
* ID, while the now ATA-133 capable 5513 still has the same PCI ID.
* Fortunately the 5513 can be 'unmasked' by fiddling with some config space
* bits, changing its device id to the true one - 5517 for 961 and 5518 for
* 962/963.
*/


....

Wenn es eine Fehlerquelle gibt , dann UDMA. Ich würde UDMA erstmal deaktivieren und nur testweise mit hdparm einschalten.

Ich weiß nicht ob du was damit anfangen kannst, aber ich würde mal eine aktuelle Version 2.6.26 versuchen. Ich habe mit NForce Chipsätzen gute Erfahrungen gemacht, weil NVidia selbst die Entwicklung von Linuxkerneltreibern unterstützt:

http://www.nvidia.de/object/linux_nforce_1.23_de.html






Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen