ide dma not working
I am having trouble getting my kernel+hdd to operate in DMA. This has been happening ever since FC1, my first linux install. I am on 2.6.9-1.667 (FC3) at the moment; though I was up to 2.6.10 at one point (the kernel logs says there has been a lot of updating done on the IDE system for 2.6.10) All versions have rendered the same problem.
When attempting to set the system in dma mode using hdparm -d1 /dev/hda, the system pauses (no response, HDD light stays on) for about 15 or 20 seconds. When I hdparm again the report says dma is disabled. dmesg reports <clip-begin> SIS5513: IDE controller at PCI slot 0000:00:00.1 SIS5513: chipset revision 208 SIS5513: not 100% native mode: will probe irqs later SIS5513: SiS530 ATA 66 controller ide0: BM-DMA at 0x4000-0x4007, BIOS settings: hda:DMA, hdb:DMA ide1: BM-DMA at 0x4008-0x400f, BIOS settings: hdc:DMA, hdd:DMA Probing IDE interface ide0... hda: MAXTOR 6L060J3, ATA DISK drive Using cfq io scheduler ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Probing IDE interface ide1... hdc: LG CD-RW CED-8042B, ATAPI CD/DVD-ROM drive hdd: SONY CD-RW CRX195E1, ATAPI CD/DVD-ROM drive ide1 at 0x170-0x177,0x376 on irq 15 Probing IDE interface ide2... ide2: Wait for ready failed before probe ! Probing IDE interface ide3... ide3: Wait for ready failed before probe ! Probing IDE interface ide4... ide4: Wait for ready failed before probe ! Probing IDE interface ide5... ide5: Wait for ready failed before probe ! hda: max request size: 128KiB hda: 117266688 sectors (60040 MB) w/1819KiB Cache, CHS=65535/16/63, UDMA(66) hda: cache flushes supported hda:<4>hda: dma_timer_expiry: dma status == 0x61 hda: DMA timeout error hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown hda: dma_timer_expiry: dma status == 0x61 hda: DMA timeout error hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest } <clip-end> The system works fine, but naturally the hard disk is slower than it should be. Its an AMD K6 (think it's a PII equivalent), 500MHz, maxtor D740X 60 GB HDD. The chipset is SiS530/5513. My research says that this chipset is well supported in linux. I've checked the .config file in the linux source and this chipset is selected (among others). The mobo specs say it'll do ata 33/66. The HDD spec says it'll do up to ata/133. The system is a retired Win98 system, simple home work station, nothing fancy. One hard disk, one floppy, a CD ROM, and a newer CDRW burner. 384 MB of RAM. Loading mozilla can take up to a minute. I've gone with XFCE to reduce the load and I stay in command line most of the time. None-the-less it is still much slower than the Win98 system was. I believe (hope) repairing this dma issue may bring back some juice. My goal is to set up a simple home-use file server (music, photos, etc.) in a private lan. Obviously without dma, the disk is sloooooow: hdparm -tT /dev/hda /dev/hda: Timing cached reads: 124 MB in 2.03 seconds = 61.06 MB/sec Timing buffered disk reads: 16 MB in 3.16 seconds = 5.07 MB/sec I have checked the ide cables and upgraded it to 80 conductor cable for the drive. Now it runs in udma mode 4, before the cable change it was running in mode 2. But the kernel refuses to accepted a dma mode. I've checked and double checked the jumpers on the HDD with the manufacturer specs and it's set to master. hdparm -i /dev/hda /dev/hda: Model=MAXTOR 6L060J3, FwRev=A93.0500, SerialNo=663204614961 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=4047/16/255, CurSects=16511760, 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 UDMA modes: udma0 udma1 udma2 udma3 *udma4 udma5 udma6 AdvancedPM=no WriteCache=enabled Drive conforms to: ATA/ATAPI-5 T13 1321D revision 1: * signifies the current active mode I 've check the BIOS and it is set to auto - detect the drive. I have the latest BIOS the mobo manufacturer offers (about year 2000). On a hunch I set ide0=dma in the grub.conf file. No joy. 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 = 65535/16/63, sectors = 60040544256, start = 0 I repartitioned the harddrive with new partitions - removing a previous installation of Win98. I was grasping, I suppose, but I thought maybe there was a problem with the booting set up. Nothing changed. This is how the new disk set up looks. /sbin/fdisk -l Disk /dev/hda: 60.0 GB, 60040544256 bytes 255 heads, 63 sectors/track, 7299 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 13 104391 83 Linux /dev/hda2 14 7299 58524795 8e Linux LVM BTW: I opted for "autoparition" during install in anaconda. Is LVM what I want? Or should I fdisk the whole thing back to type 83, ext2fs ? My goal was to keep it simple. This is a single user, home network system. I didn't want to get complicated with multiple partitions just yet. I have been at this for months and I have reached the end of my rope. I have learned a great deal about linux, but I am still a newbie and I could have easily overlooked the obvious. Can anyone help? Thanks in advance. Rob |
hdparm
Hi Rob,
I got hdparm to work. Here's the output: /dev/hda: Model=WDC WD1200JB-00FUA0, FwRev=15.05R15, SerialNo=WD-WMAET1507087 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq } RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=74 BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=234441648 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 Looks similar to yours. I tried to look at dmesg, but it looks like I corrupted it when fooling with grep. :( Need to reboot and look again. :) Brad |
All times are GMT -5. The time now is 09:16 PM. |