IDE DMA problems

From: Torsten Landschoff (torsten@debian.org)
Date: Fri Mar 28 2003 - 14:27:17 EST


Hi *,

After I lost all my data due to two disk crashes I am now building a
raid5 on my file server. I got 3 120GB IDE drives - but I can't get
one of them to work in udma2 mode:

stargate:~# hdparm -i /dev/hda

/dev/hda:

 Model=SAMSUNG SV8004H, FwRev=QR100-09, SerialNo=0357J1FW108136
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=38997, SectSize=619, ECCbytes=4
 BuffType=DualPortCache, BuffSize=1945kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=156368016
 IORDY=yes, 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
 AdvancedPM=no WriteCache=enabled
 Drive Supports : fastATA-1 ATA-2 ATA-3 ATA-4 ATA-5 ATA-6

Using hdparm -X 66 to set it to udma2 just kills off dma with these
error messages:

  hda: timeout waiting for DMA
  ide_dmaproc: chipset supported ide_dma_timeout func only: 14
  hda: status error: status=0x58 { DriveReady SeekComplete DataRequest }
  hda: drive not ready for command
  blk: queue c0370084, I/O limit 4095Mb (mask 0xffffffff)
  hda: lost interrupt

The kernel I am using is 2.4.20 + xfs patches + ptrace patch:
  stargate:~# uname -a
  Linux stargate 2.4.20 #1 SMP Thu Mar 27 03:08:54 CET 2003 i686 unknown

Because of this I can't get decent performance out of my RAID5. The
controller is on-board of a Soyo 6KD:

stargate:~# lspci -s 00:07.01 -vvvvv
00:07.1 IDE interface: Intel Corp. 82371AB PIIX4 IDE (rev 01) (prog-if 80 [Master])
        Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 64
        Region 4: I/O ports at ffa0 [size=16]

What's worse is that accessing the CD-ROM on /dev/hdc locks the system hard.
No keyboard, network, nothing. The last lines on the screen are always those:

  hdc: timeout waiting for DMA
  ide_dmaproc: chipset supported ide_dma_timeout func only: 14

The relevant drive is this:

stargate:~# hdparm -i /dev/hdc

/dev/hdc:

 Model=LITE-ON LTR-48246S, FwRev=SS0B, SerialNo=
 Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
 RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=0kB, MaxMultSect=0
 (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
 IORDY=yes, tPIO={min:227,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 *mdma2 udma0 udma1 udma2
 AdvancedPM=no
 Drive Supports : Reserved : ATA-5

Using PIO works. The same cable can drive a hard drive using udma5 on
the off board ATA/133 controller.

Two things bother me:

a) How on earth can I get udma2 to work on the first controller? It worked
   before the crash... Whatever I do, /proc/ide/piix always tells me this:

                                Intel PIIX4 Ultra 33 Chipset.
--------------- Primary Channel ---------------- Secondary Channel -------------
                 enabled enabled
--------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------
DMA enabled: yes no no no
UDMA enabled: no no yes no
UDMA enabled: X X 2 X

b) What's going on with /dev/hdc? More interestingly this worked with
   knoppix 2.0 which is running some 2.4.5 kernel iirc.

Any help would be welcome.

Thanks

        Torsten
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Mar 31 2003 - 22:00:32 EST