Skip to contentSkip to conversation

ide_dma_timeout w/2.2.16 (redhat) and PIIX3

DISCUSSION Rupa Schomaker 1 participant 1 message Nov 20, 2000

lore
Share & tools
lore
#0 lore raw

I've got an older HP E40 that I'm having problems getting to work with DMA turned on.

Specifically, I get the following errors when I do a "hdparm -d 1 /dev/hda" and the same for hdc. If I boot into single user mode I can't seem to generate the problem, but after booting into multi user mode I can cause all kinds of errors just by doing a bunch of disk activity. (Start oracle, copy filesystems, compile kernel, etc)

I get this with the "standard" Redhat 2.2.16 kernel (that is with their patches applied). I also tried applying Andre's IDE patches for 2.2.16 and didn't get any success.

The drives are Maxtor 45G 7200 RPM IDE drives. I'm using 80pin IDE cables -- though the PIIX3 only supports DMA, not UDMA.

I was going to get a UDMA controller, but the only one I could find that seemed to have linux support (Promise) would break when I enabled DMA. Figured I'd not bother working on that until I got the base stuff working.

====

Question about hdparm. If I enable dma (-d1) and then experience errors. I can't seem to just turn off dma support (-d0) and get on with life. I continue to get the DMA errors and must reboot to get into non-dma mode. Is this correct?

====

Log entries example:

Nov 17 17:57:01 gw kernel: hdc: timeout waiting for DMA 
Nov 17 17:57:01 gw kernel: hdc: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } 
Nov 17 18:25:28 gw kernel: hda: timeout waiting for DMA 
Nov 17 18:25:28 gw kernel: hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } 
Nov 17 18:25:38 gw kernel: hda: timeout waiting for DMA 
Nov 17 18:25:38 gw kernel: hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } 
Nov 17 18:25:48 gw kernel: hda: timeout waiting for DMA 
Nov 17 18:25:48 gw kernel: hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } 
Nov 17 18:25:58 gw kernel: hda: timeout waiting for DMA 
Nov 17 18:25:58 gw kernel: hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } 
Nov 17 18:25:58 gw kernel: ide0: reset: success 
Nov 17 18:26:12 gw kernel: hda: timeout waiting for DMA 
Nov 17 18:26:12 gw kernel: hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } 

====

# hdparm -iI /dev/hda

/dev/hda:

Model=Maxtor 54610H6, FwRev=JAC61HU0, SerialNo=F605M4KC Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57 BuffType=3(DualPortCache), BuffSize=2048kB, MaxMultSect=16, MultSect=16 DblWordIO=no, maxPIO=2(fast), DMA=yes, maxDMA=0(slow) CurCHS=16383/16/63, CurSects=-66060037, LBA=yes
LBA CHS=1023/256/63 Remapping, LBA=yes, LBAsects=90045648 tDMA={min:120,rec:120}, DMA modes: mword0 mword1 *mword2 IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode3 mode4 UDMA modes: mode0 mode1 mode2

Model=aMtxro5 64016H , FwRev=AJ6CH10U, SerialNo=6F504MCK
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57 BuffType=3(DualPortCache), BuffSize=2048kB, MaxMultSect=16, MultSect=16 DblWordIO=no, maxPIO=2(fast), DMA=yes, maxDMA=0(slow) CurCHS=16383/16/63, CurSects=-66060037, LBA=yes
LBA CHS=1023/256/63 Remapping, LBA=yes, LBAsects=90045648 tDMA={min:120,rec:120}, DMA modes: mword0 mword1 *mword2 IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode3 mode4 UDMA modes: mode0 mode1 mode2

====

Quoted 1 line

From /proc/pci:

PCI devices found:
Bus 0, device 0, function 0:
Host bridge: Intel 82441FX Natoma (rev 2).
Medium devsel. Fast back-to-back capable. Master Capable. Latency=32.
Bus 0, device 4, function 0:
ISA bridge: Intel 82371SB PIIX3 ISA (rev 1).
Medium devsel. Fast back-to-back capable. Master Capable. No bursts.
Bus 0, device 4, function 1:
IDE interface: Intel 82371SB PIIX3 IDE (rev 0).
Medium devsel. Fast back-to-back capable. Master Capable. Latency=32. I/O at 0x500 [0x501].
Bus 0, device 6, function 0:

    Ethernet controller: Intel 82557 (rev 1).
      Medium devsel.  Fast back-to-back capable.  IRQ 9.  Master Capable.  Latency=66.  Min Gnt=8.Max Lat=56.
      Prefetchable 32 bit memory at 0xfecfe000 [0xfecfe008].
      I/O at 0xf8e0 [0xf8e1].
      Non-prefetchable 32 bit memory at 0xfed00000 [0xfed00000].
  Bus  0, device  10, function  0:
    Ethernet controller: Intel 82557 (rev 5).
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.  Latency=66.  Min Gnt=8.Max Lat=56.
      Prefetchable 32 bit memory at 0xfecfd000 [0xfecfd008].
      I/O at 0xf8c0 [0xf8c1].
      Non-prefetchable 32 bit memory at 0xfeb00000 [0xfeb00000].

Bus 0, device 7, function 0:
SCSI storage controller: Adaptec AIC-7850 (rev 1).
Medium devsel. Fast back-to-back capable. IRQ 11. Master Capable. Latency=64. Min Gnt=4.Max Lat=4. I/O at 0xfc00 [0xfc01].
Non-prefetchable 32 bit memory at 0xfecff000 [0xfecff000].
Bus 0, device 13, function 0:
VGA compatible controller: Cirrus Logic GD 5446 (rev 0).
Medium devsel.
Prefetchable 32 bit memory at 0xfd000000 [0xfd000008].

Signature · 5 lines
-rupa
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/