P4P800 linux and harddrive speed (DMA?)

S

sthemage

I just bought the ASUS P4P800 Deluxe motherboard. I was told that I
needed linux 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. Even running fsck takes a
much longer time now (maybe 4-6 times as long).

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.

By the way, thanks to Clemens Ladisch <[email protected]> who first
diagnosed this problem on this forum. I was inquiring about why my
sound quality was so poor. He picked up on the fact that it was
likely
the DMA. I don't know what else it could be?

Thanks,
Steve
 
P

Paul

I just bought the ASUS P4P800 Deluxe motherboard. I was told that I
needed linux 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. Even running fsck takes a
much longer time now (maybe 4-6 times as long).

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)

A search on groups.google.com on "linux dev/hda dma" returns 8000 hits.
This seems to be a popular linux problem. One suggestion is it has to
do with compiling in chipset support in the kernel, but there could be
other reasons. Perhaps asking the question in a linux group would get
an answer ? Somewhere that they do kernel development.
There was also mention of including the output of lspci -v

Paul
 
S

sthemage

A search on groups.google.com on "linux dev/hda dma" returns 8000 hits.
This seems to be a popular linux problem. One suggestion is it has to
do with compiling in chipset support in the kernel, but there could be
other reasons. Perhaps asking the question in a linux group would get
an answer ? Somewhere that they do kernel development.
There was also mention of including the output of lspci -v

Paul


Paul,

Thanks for the tip. You're right, it appears this problem is very
common and not limited to just the P4P800 motherboard.

I've concluded that linux kernels 2.4.20, 2.4.21, and 2.4.22-pre5
do not recognize the P4P800 motherboard's IDE controller. I've tried
a large number of kernel compile settings, and each has not improved
things. So it must be the kernel itself. I've sent a message to the
IDE kernel maintainer (Andre Hedrick). No response yet.

Interestingly, when I used linux kernel 2.4.2, I was able to
manually set the DMA mode. But the latest kernels don't allow it.
It's very frustrating.

Is there anyone else here who can get their DMA working with this
motherboard in linux?? If so, which linux kernel version are you
using?

Steve
 
A

Andrew E. Schulman

On my P4P800 with unpatched 2.4.21 kernel, DMA is enabled by default
Clemens!!

You solved my problem. It was the fact that I didn't config the
Intel PIIXn chipset support. That did it! I didn't know the
ICH5 was considered an Intel PIIXn chipset. Live and learn.

Confirmed. The Intel PIIXn IDE driver makes my kernel recognize my
ICH5 hub (on an Abit IS7). I now have UDMA on the parallel drives,
and my SATA channels are recognized too.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top