View previous topic :: View next topic |
Author |
Message |
SoulSe Tux's lil' helper


Joined: 07 Sep 2003 Posts: 134 Location: South Africa
|
Posted: Wed Jan 14, 2004 11:02 am Post subject: DMA problem |
|
|
I found quite a few threads with similar problems, but mine seems to be different. I have an ASUS A7V600 MoBo that I am using with an old Maxtor 40GB hdd, 5400rpm, ATA.
When I boot Gentoo, I get an error saying that the DMA on my disk is not enabled and that this could seriously retard the fsck process.
So the first thing I did was try to enable the DMA using hdparm, this informs me that I do not have permission.
Now, unlike the other posts that I have read, there does not seem to be anything missing from my kernel compilation.
My performance doesn't seem too bad, although this is a new system, so I have nothing to compare it to.
The ASUS MoBo has RAID as well.
Any ideas?  _________________ AMD AthlonXP 2500+
512MB RAM
Geforce FX5700 |
|
Back to top |
|
 |
SoulSe Tux's lil' helper


Joined: 07 Sep 2003 Posts: 134 Location: South Africa
|
Posted: Wed Jan 14, 2004 12:57 pm Post subject: |
|
|
Ok, hdparm -tT /dev/hda shows me a speed of around 4.8 MB/s - too slow IMO.
There must be a good reason why hdparm won't allow me to set DMA on
the drive? Can I add hdparm to my boot schedule with rc-update? Or is this the wrong way to do it?
I know I should do hdparm -d1 /dev/hda and then make it stick... but it won't do it... _________________ AMD AthlonXP 2500+
512MB RAM
Geforce FX5700 |
|
Back to top |
|
 |
cartman| n00b


Joined: 26 Dec 2003 Posts: 50 Location: southpark
|
Posted: Wed Jan 14, 2004 4:38 pm Post subject: |
|
|
I have the same problem. I upgraded from 2.4 to 2.6, but all the DMA specific options are turned on in the kernel config.
(
Code: |
bash-2.05b# hdparm -tT /dev/hda
/dev/hda:
Timing buffer-cache reads: 1768 MB in 2.00 seconds = 882.81 MB/sec
Timing buffered disk reads: 22 MB in 3.01 seconds = 7.31 MB/sec
|
I have no access to enable DMA
Code: |
bash-2.05b# hdparm -d1 /dev/hda
/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
|
mine is a desktop computer
abit-nf7
and two udma5 / ata133 hard drives
I think it can be fixed somewhere in /etc , but I cant't remember where exactly |
|
Back to top |
|
 |
cartman| n00b


Joined: 26 Dec 2003 Posts: 50 Location: southpark
|
Posted: Wed Jan 14, 2004 5:38 pm Post subject: |
|
|
I had to select my mainboard chipset in menuconfig, now everything is ok |
|
Back to top |
|
 |
jmz2 Guru


Joined: 13 Jan 2004 Posts: 421 Location: Finland
|
Posted: Wed Jan 14, 2004 7:14 pm Post subject: |
|
|
SoulSe wrote: | Ok, hdparm -tT /dev/hda shows me a speed of around 4.8 MB/s - too slow IMO. |
What kernel are you using? I lost DMA too when I tried the ac-series, but got it back when I switched to another kernel tree. The error message with the ac-series was similar to yours, so I think it's a kernel configuration issue.
Quote: | There must be a good reason why hdparm won't allow me to set DMA on
the drive? Can I add hdparm to my boot schedule with rc-update? Or is this the wrong way to do it? |
Edit /etc/conf.d/hdparm and append to it. Then you can do rc-update add hdparm default. |
|
Back to top |
|
 |
SoulSe Tux's lil' helper


Joined: 07 Sep 2003 Posts: 134 Location: South Africa
|
Posted: Wed Jan 14, 2004 7:48 pm Post subject: |
|
|
Thanks for the advice. I guess I'll compile myself a 2.6 kernel and see if that does it. I'm going to have to get as much info about this MoBo and it's chipsets as I can and make sure I do it right.
This might take a while (getting the source on dialup )
Will report back when done (one year, two? who knows... ) _________________ AMD AthlonXP 2500+
512MB RAM
Geforce FX5700 |
|
Back to top |
|
 |
langthang Retired Dev

Joined: 27 Nov 2003 Posts: 620
|
Posted: Thu Jan 15, 2004 12:03 am Post subject: |
|
|
jmz2 wrote: | Then you can do rc-update add hdparm default. |
Someone please correct me if I am wrong but I don't think you need hdparm to turn on DMA.
Code: |
local root # hdparm -i /dev/hdh
/dev/hdh:
Model=WDC WD400BB-00AUA1, FwRev=18.20D18, SerialNo=XX-XXXXXXXXXX
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=40
BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78165360
IORDY=on/off, tPIO={min:120,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
AdvancedPM=no WriteCache=enabled
Drive conforms to: device does not report version:
* signifies the current active mode
|
mine without add hdparm to default runlevel . ATA-100 harddrive. Promise controller.
Code: |
local root # hdparm -tT /dev/hdh
/dev/hdh:
Timing buffer-cache reads: 1452 MB in 2.00 seconds = 725.02 MB/sec
Timing buffered disk reads: 80 MB in 3.06 seconds = 26.14 MB/sec
|
|
|
Back to top |
|
 |
jmz2 Guru


Joined: 13 Jan 2004 Posts: 421 Location: Finland
|
Posted: Thu Jan 15, 2004 7:46 am Post subject: |
|
|
langthang wrote: | jmz2 wrote: | Then you can do rc-update add hdparm default. |
Someone please correct me if I am wrong but I don't think you need hdparm to turn on DMA.
Code: |
local root # hdparm -i /dev/hdh
/dev/hdh:
Model=WDC WD400BB-00AUA1, FwRev=18.20D18, SerialNo=XX-XXXXXXXXXX
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=40
BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78165360
IORDY=on/off, tPIO={min:120,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
AdvancedPM=no WriteCache=enabled
Drive conforms to: device does not report version:
* signifies the current active mode
|
|
This doesn't actually tell if you have DMA enabled or not. hdparm -i lists the U/DMA capabilities of your hard disk regardless of the DMA settings. To find out if you have DMA enabled for the hdh, type:
Your promise controller may operate only when DMA is enabled, and thus enable it automatically. This is not the case with all integrated HD controllers. |
|
Back to top |
|
 |
SoulSe Tux's lil' helper


Joined: 07 Sep 2003 Posts: 134 Location: South Africa
|
Posted: Thu Jan 15, 2004 7:47 am Post subject: |
|
|
langthang wrote: | Someone please correct me if I am wrong but I don't think you need hdparm to turn on DMA. |
You are right, the way I understand it, DMA should be enabled from the word go, hdparm is a tool which can be used to enable it (and other drive features) should there be some problem with it starting.
Has anybody compiled a kernel for an ASUS A7V600 like mine? I'd appreciate it if someone could give me some tips on which modules will get it going? I think I'll start a thread for the MoBo... _________________ AMD AthlonXP 2500+
512MB RAM
Geforce FX5700 |
|
Back to top |
|
 |
langthang Retired Dev

Joined: 27 Nov 2003 Posts: 620
|
Posted: Thu Jan 15, 2004 5:05 pm Post subject: |
|
|
SoulSe wrote: |
Has anybody compiled a kernel for an ASUS A7V600 like mine? |
No I don't but my motherboard has VIA chipset also. May be you can try to compile VIA82CXXX chipset support into the kernel (2.6.x)
My kernel config
Code: |
Device Drivers ---> ATA/ATAPI/MFM/RLL support --->
<*> ATA/ATAPI/MFM/RLL support
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
[*] PCI IDE chipset support
[*] Sharing PCI IDE interrupts support
[*] Generic PCI IDE Chipset Support
[*] Generic PCI bus-master DMA support
[*] Use PCI DMA by default when available
<*> VIA82CXXX chipset support
|
Code: |
CONFIG_BLK_DEV_VIA82CXXX:
This driver adds explicit support for VIA BusMastering IDE chips.
This allows the kernel to change PIO, DMA and UDMA speeds and to
configure the chip to optimum performance.
|
it would help if you post your `lspci`. |
|
Back to top |
|
 |
|