Problem
Hi folks,
I have an HP Proliant 140DL G2 server with what appears to be an IDE
drive in non-DMA mode. Performance on the server is extremely bad
when large amounts of disk activity is taking place.
# uname -a
Linux stargate3 2.6.9-67.0.15.EL #1 Thu May 8 10:39:19 EDT 2008 i686 i686 i386 GNU/Linux
I think the problem is that my drive is not in DMA mode:
# hdparm /dev/hda/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 = 256 (on)
geometry = 16383/255/63, sectors = 80026361856, start = 0
...but I can't set it on:
# hdparm -d1 /dev/hda/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
...which I think is because the IDE controller isn't really
recognized, or is pretending to be a SATA controller:
# lspci -v | less
00:1f.2 IDE interface: Intel Corporation 82801EB (ICH5) SATA Controller (rev 02) (prog-if 8a [Master SecP PriP])
Subsystem: Hewlett-Packard Company: Unknown device 3208
Flags: bus master, 66Mhz, medium devsel, latency 0, IRQ 193
I/O ports at <unassigned>
I/O ports at <unassigned>
I/O ports at <unassigned>
I/O ports at <unassigned>
I/O ports at 1470 [size=16]
All the google hits I've seen so far imply I have to build a kernel module
but I'd rather not get into the business of rolling my own kernel if I
don't have to.
I spun through the HP support page for this box/OS combo, and I don't see
any SATA/IDE/ATA drivers, only SCSI/SAS drivers.
So before I continue on, can I get a sanity check here -- am I barking
up the right tree?
Solution
This should be /dev/sda and not /dev/hda which means you're most likely
using the generic-ide driver and not ata-piix.
Google suggests booting with
ide0=noprobe ide1=noprobe to make sure the
ata-piix driver is used. If you don't want to reinstall then make sure initrd contains the ata-piix driver and that references to /dev/hd* are replaced with
/dev/sd* in fstab etc.