LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices


Reply
  Search this Thread
Old 07-12-2003, 09:41 PM   #1
sthemage
LQ Newbie
 
Registered: Jul 2003
Posts: 22

Rep: Reputation: 0
ASUS P4P800 motherboard and harddrive DMA?


I just bought the ASUS P4P800 Deluxe motherboard. I was told that I needed kernel 2.4.21 for this motherboard, so I upgraded to it and that's what I'm using now.

But I quickly noticed that my IDE harddrive access causing the system to pause temporarily every now and then when it accesses large files or has a lot of activity. It looks like it's not able to turn on DMA, so I'm getting really poor performance.

When I do "hdparm -d /dev/hda" (my primary harddrive), it shows:

/dev/hda:
using_dma = 0 (off)

So I type "hdparm -d1 /dev/hda", and it says:

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

When I type "hdparm -i /dev/hda", it shows:

Model=MAXTOR 6L060J3, FwRev=A93.0500, SerialNo=663129813372
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=32256, SectSize=21298, ECCbytes=4
BuffType=DualPortCache, BuffSize=1819kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=-66060037, LBA=yes, LBAsects=117266688
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 udma0 udma1 udma2 udma3 udma4 *udma5 udma6


So it looks like it recognizes that it has up to udma6. The BIOS also recognized it (I checked there in the BIOS settings that it detected it was UDMA-6). So why is linux unable to use DMA mode with my harddrives?

Here's a snippet from my /var/log/messages about the IDE stuff:

Jul 12 20:59:48 moon kernel: ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Jul 12 20:59:48 moon kernel: hda: MAXTOR 6L060J3, ATA DISK drive
Jul 12 20:59:48 moon kernel: hdb: WDC WD800BB-00BSA0, ATA DISK drive
Jul 12 20:59:48 moon kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Jul 12 20:59:48 moon kernel: hda: attached ide-disk driver.
Jul 12 20:59:48 moon kernel: hda: host protected area => 1
Jul 12 20:59:48 moon kernel: hda: 117266688 sectors (60041 MB) w/1819KiB Cache, CHS=7299/255/63
Jul 12 20:59:48 moon kernel: hdb: attached ide-disk driver.
Jul 12 20:59:48 moon kernel: hdb: host protected area => 1
Jul 12 20:59:48 moon kernel: hdb: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=9729/255/63
Jul 12 20:59:48 moon kernel: ide-floppy driver 0.99.newide
Jul 12 20:59:48 moon kernel: Partition check:
Jul 12 20:59:48 moon kernel: hda: hda1 hda2 hda3 hda4
Jul 12 20:59:48 moon kernel: hdb: hdb1
Jul 12 20:59:48 moon kernel: ide-floppy driver 0.99.newide

Any idea what's going on? I seem to have reached the limits of my knowledge in this area. I don't think I can deal with having a motherboard in this kind of condition. But I doubt it's the motherboard's fault. I think it's something I need to be setting in linux somewhere. But what?!

How I noticed this problem in the first place was that I tried to play some mp3's to check out the P4P800's built-in sound chips. The sound was terrible. Every few seconds it would mess up by playing the wrong sound, or it would play garbage sound (not white noise) or pause in between sounds. Then I noticed it happened whenever I had disk access. So it looks like the disk access was interrupting the system long enough to cause the sound operations to be put on hold or even get corrupted (some of the notes were way off). I also noticed my mouse pointer would hang every now and then whenever I did something intensive with the disk. I mean it would hang for as much as 10 seconds! And I have a Pentium 4 2.6GHz, so it's definitely not a question of CPU speed.

Any help would be appreciated. I'm baffled.

Thanks,
Steve
 
Old 07-13-2003, 03:56 AM   #2
Thoreau
Senior Member
 
Registered: May 2003
Location: /var/log/cabin
Distribution: All
Posts: 1,167

Rep: Reputation: 45
Hi

First, upgrade your BIOS.

http://www.asus.com/support/download...4P800%20Deluxe

And your IDE chipset is actually a IDE software RAID chipset.

I'd like to tell you what raid chipset you have, but asus seems to have a bunch of dead links where the manuals should be. Sorry. Looks like a VIA something or other. In which case you would need the raid kernel VIA module for that chipset.
 
Old 07-13-2003, 11:14 AM   #3
sthemage
LQ Newbie
 
Registered: Jul 2003
Posts: 22

Original Poster
Rep: Reputation: 0
Thanks, Thoreau. I'll flash my BIOS, which I've not done yet. Do you really think that'll allow linux to turn on DMA? Is that something an older BIOS didn't allow?

Also, I'm not using RAID drives. I'm just hooking up two harddrives to my primary IDE port. So I shouldn't have to enable RAID in the kernel or anything, right? I don't even remember seeing something in the config settings for it.

I'll post back after flashing the latest BIOS.

Steve
 
Old 07-13-2003, 12:35 PM   #4
sthemage
LQ Newbie
 
Registered: Jul 2003
Posts: 22

Original Poster
Rep: Reputation: 0
I upgraded my BIOS to the lastest version (version 1008 6/25/03). It didn't improve (or worsen) things. My DMA is still not set, and I get the same error message trying to force it to be set using hdparm.

I'm not sure what's going on here. I'm probably not setting something right in the linux kernel .config file. Here's the snippet from my .config file for just the IDE related section. Is there anything in there which should be set but isn't? ....

#
# ATA/IDE/MFM/RLL support
#
CONFIG_IDE=y

#
# IDE, ATA and ATAPI Block devices
#
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_IDE is not set
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_IDEDISK_STROKE is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDESCSI=y
# CONFIG_IDE_TASK_IOCTL is not set

#
# IDE chipset support/bugfixes
#
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPCI is not set
CONFIG_IDE_CHIPSETS=y

#
# Note: most of these also require special kernel boot parameters
#
# CONFIG_BLK_DEV_4DRIVES is not set
# CONFIG_BLK_DEV_ALI14XX is not set
# CONFIG_BLK_DEV_DTC2278 is not set
# CONFIG_BLK_DEV_HT6560B is not set
# CONFIG_BLK_DEV_QD65XX is not set
# CONFIG_BLK_DEV_UMC8672 is not set
# CONFIG_IDEDMA_AUTO is not set
# CONFIG_DMA_NONPCI is not set
CONFIG_BLK_DEV_IDE_MODES=y


I tried manually changing the CONFIG_IDEDMA_AUTO setting to "y". Same with the CONFIG_DMA_NONPCI setting. Then I did "make xconfig", pulled up the menu for IDE stuff, didn't make any changes, then saved the .config file. The result was that the settings I had manually set were changed back to being unset. I think, therefore, I'm not supposed to just turn those two settings on and nothing else? I'm going to continue to play with it.


Thanks,
Steve
 
Old 07-13-2003, 12:47 PM   #5
DrOzz
Senior Member
 
Registered: May 2003
Location: Sydney, Nova Scotia, Canada
Distribution: slackware
Posts: 4,185

Rep: Reputation: 60
add hdparm -d1 /dev/hda to your rc.local file.

*edit*
and reboot

Last edited by DrOzz; 07-13-2003 at 12:48 PM.
 
Old 07-13-2003, 02:42 PM   #6
sthemage
LQ Newbie
 
Registered: Jul 2003
Posts: 22

Original Poster
Rep: Reputation: 0
Thanks, DrOzz, but that didn't work either. I got the same error message that I get when I just su into root and try to use "hdparm -d1 /dev/hda".

I wish I had someone's working 2.4.X linux kernel ".config" file so I could see what it is they're doing that I'm not doing.

Steve
 
Old 07-14-2003, 08:23 PM   #7
sthemage
LQ Newbie
 
Registered: Jul 2003
Posts: 22

Original Poster
Rep: Reputation: 0
Well I emailed the linux kernel IDE maintainer. I haven't heard back. I did a google search on this problem, and it seems it's a very common problem. I think I'm the first to see it for the P4P800 and my combination of harddrives. But others with other motherboards and harddrives have run into this same issue lots of times in the past.

I tried upgrading to kernel 2.4.22-pre5. It wasn't any better. I hope they enable it in the final version of 2.4.22.

Interestingly, I tried kernel 2.4.2 (which came with Red Hat 7.1), and it didn't enable DMA either, *but* I was able to do "hdparm -d 1 /dev/hda" to enable it manually. And that worked. It doesn't work for kernels 2.4.20, 2.4.21, or 2.4.22-pre5, however. So that seems like a bug.

My feeling at this point is that the linux IDE drivers are greatly in flux. I hope they'll straighten this out soon. It's very disappointing.

Steve
 
Old 07-14-2003, 08:43 PM   #8
Piero
LQ Newbie
 
Registered: Jul 2003
Posts: 19

Rep: Reputation: 0
Then what you mean is that if I don't update the kernel, I can't enable the DMA Channel.
Is that true?
 
Old 07-15-2003, 08:43 PM   #9
sthemage
LQ Newbie
 
Registered: Jul 2003
Posts: 22

Original Poster
Rep: Reputation: 0
Well well. I got a response to my question on alt.comp.periphs.mainboard.asus. It turns out I needed to enable these settings in the linux 2.4.21 kernel config:

* Generic PCI IDE Chipset Support (CONFIG_BLK_DEV_GENERIC)
* Generic PCI bus-master DMA support (CONFIG_BLK_DEV_IDEDMA_PCI)
* Use PCI DMA by default when available (CONFIG_IDEDMA_PCI_AUTO)
* Intel PIIXn chipsets support (CONFIG_BLK_DEV_PIIX)

I wasn't enabling the Intel PIIXn chipset support. That's what I was doing wrong. I didn't even know the ICH5 chipset was considered part of the Intel PIIXn chipset. That really wasn't obvious to me. Live and learn.

So now the kernel recognizes my on-board IDE controller. I verified that DMA is being used. And man, what a big performance difference!!! I feel like I have a great system now.

Steve
 
Old 11-06-2003, 06:28 AM   #10
camus716
LQ Newbie
 
Registered: Nov 2003
Posts: 2

Rep: Reputation: 0
I got exactly same problem with P4P800.

I use Redhat8 with 2.4.18-14 kernel, and I compiled with every options on what was mentioned.
But still there is "HDIO_SET_DMA failed: Operation not permitted" error with -d1 option of hdparm.

even I tried put '/sbin/hdparm -d1 /dev/hda' on my rc.local and reboot but there is still same error.

is it problem with 2.4.18 kernel?

plz help me.

Last edited by camus716; 11-06-2003 at 06:35 AM.
 
Old 11-08-2003, 04:28 AM   #11
camus716
LQ Newbie
 
Registered: Nov 2003
Posts: 2

Rep: Reputation: 0
I solved that problem with upgrading kernel to 2.4.20 . Maybe 2.4.18 cannot support ICH5 controller without some kind of patch (or no patch for 2.4.18?)

anyway there comes over 55MB/s with 'hdparm -t /dev/hda' , had been 8MB/s with disabled DMA conf.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
ASUS P4P800 On-board NIC jenny Linux - Hardware 8 07-22-2005 01:16 PM
asus p4p800-mx freehubin Linux - Hardware 1 11-21-2004 10:36 AM
ASUS P4P800 Motherboard partially supported by suse 9.1 Demise007 Linux - Hardware 7 08-22-2004 04:38 PM
asus P4P800 mirko86 Linux - Hardware 0 06-15-2004 04:05 AM
ASUS P4P800 RedHat 9 SoundE Linux - Hardware 6 10-14-2003 07:43 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware

All times are GMT -5. The time now is 04:23 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration