Problem with DMA (Linux)

howax

n00b
Joined
Oct 9, 2003
Messages
6
Hi

First of all, sorry for this bad english you're about to read :)

iam haveing this problem, since i kompiled a new kernel, i cant get my root drive running with dma, and i cant figure out whats wrong with my kernel config.
Here is an output from hdparm:


/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 = 14593/255/63, sectors = 234441648, start = 0

/dev/hdc:
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 = 2481/255/63, sectors = 39862368, start = 0

/dev/hdd:
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 = 3722/255/63, sectors = 59797584, start = 0

/dev/hde:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 9345/255/63, sectors = 150136560, start = 0

/dev/hdg:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 9345/255/63, sectors = 150136560, start = 0


/dev/hdh:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 9729/255/63, sectors = 156301488, start = 0


As you can see i have 6 harddrives, but the first 3 of them dosent run with dma on, and thats taking all my servers cpu power then iam working on them. Like i sayed i'd never had this problem before and, i think it must be something with my kernel.

When i tries to force the drives to run with dma i just get this message:

root@prohest:~# hdparm -d 1 /dev/hdc

/dev/hdc:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
root@prohest:~#

uhm, well i really dont get it, when iam root, shouldent i have the rights to everything? anyways, it says the same error on every 3 first harddrives. (hda, hdc and hdd)

Iam running Slackware 9.0. with kernel 2.4.23

just some more info that might help somebody help me :)

lspci gives this:
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4)
00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP]
00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
00:07.1 IDE interface: VIA Technologies, Inc. VT82C586/B/686A/B PIPC Bus Master IDE (rev 06)
00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
00:09.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 05)
00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
00:0e.0 Unknown mass storage controller: Triones Technologies, Inc. HPT366/368/370/370A/372 (rev 04)
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 86C326 5598/6326 (rev 0b)


as i see it there should't be any thing wrong...

Regards
 
i should properly add that its an little old box here are the specs

Dual Pentium 3
512mb PC133 apacer RAM
Motherbord: Abit VP6
uhm, there is a onboard raid controler, however iam not running with raid, the disks are just spend on them. But the disks on the raid controler is running fine with dma..
 
Im going to transfer this to operating systems
where our Linux gurus tend to hangout ;)

My DMA troubleshooting skills are entirely Win32 :p
 
make sure you have your ide chip compiled into the kernel... under device drivers-> ata/atapi/etc support -> enable Generic PCI bus-mastering DMA support and select your chipset from the list that pops up (this is assuming you do a 'make menuconfig' to compile your kernel)

if you didn't already know, find your chipset by doing something like 'lspci -v'
 
...or just enable them all; probably won't hurt much of anything.


I hope ;)
 
okay guys, i finally got it working, i had to guess the driver as i doesnt make any sense that i sould have an intel i815 driver in my kernel for my via chipsset :)
 
Good to hear that you got that working :)

Sometimes, however, even with proper IDE drivers for your chipset, some drives have been blacklisted, and will not do DMA no matter what.

Unfortunately, not all drives are created equal ;)
 
Back
Top