[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: hdparm and DMA



I have an just checked the hdparm output on another computer for an
earlier model Western Digital drive which is ATA100, 7200RPM, 40GB.
Therefore this drive should not perform as well.  Here is what I get:

Note that the kernel being used on this machine also has compiled support
for using DMA by default.

# hdparm /dev/hdc
/dev/hdc:
 multcount    =  0 (off)
 I/O support  =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 nowerr       =  0 (off)
 readonly     =  0 (off)
 readahead    =  8 (on)
 geometry     = 77545/16/63, sectors = 78165360, start = 0
 busstate     =  1 (on)

# hdparm -i /dev/hdc
/dev/hdc:
 Model=WDC WD400BB-32AUA1, FwRev=18.20D18, SerialNo=WD-WMA6R3707054
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
 RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=40
 BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=off
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78165360
 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
 AdvancedPM=no WriteCache=enabled
 Drive Supports : Reserved : ATA-1 ATA-2 ATA-3 ATA-4 ATA-5

# hdparm -tT /dev/hdc
/dev/hdc:
 Timing buffer-cache reads:   128 MB in  1.24 seconds =103.23 MB/sec
 Timing buffered disk reads:  64 MB in  3.76 seconds = 17.02 MB/sec

And now back to my new computer with the ATA133, 7200RPM, 40GB:

# hdparm -i /dev/hda
/dev/hda:
 Model=WDC WD400JB-00ENA0, FwRev=05.03E05, SerialNo=WD-WMAD12312399
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
 RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=40
 BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=off
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78165360
 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
 AdvancedPM=no WriteCache=enabled
 Drive Supports : Reserved : ATA-1 ATA-2 ATA-3 ATA-4 ATA-5

This newer drive has a larger buffer and connected using ATA133 so it
should outperform the first.

Now trying hdparm again for this drive:

# hdparm -c1 -m16 -d1 -X34 -X12 -X69 -a8 /dev/hda
/dev/hda:
 setting fs readahead to 8
 setting 32-bit I/O support flag to 1
 setting multcount to 16
 setting using_dma to 1 (on)
 setting xfermode to 69 (UltraDMA mode5)
 multcount    = 16 (on)
 I/O support  =  1 (32-bit)
 using_dma    =  1 (on)
 readahead    =  8 (on)

But then syslog shows:
Nov 19: ide0: Speed warnings UDMA 3/4/5 is not functional.
Nov 19: hda: timeout waiting for DMA
Nov 19: ide_dmaproc: chipset supported ide_dma_timeout func only: 14
Nov 19: hda: status error: status=0x58 { DriveReady SeekComplete DataRequest }
Nov 19: hda: drive not ready for command
Nov 19: hda: status timeout: status=0xd0 { Busy }
Nov 19: hda: drive not ready for command
Nov 19: ide0: reset: success

So it was reset again.

Then trying:
# hdparm -c1 -m16 -d1 -X34 -X12 -X66 -a8 /dev/hda
/dev/hda:
 setting fs readahead to 8
 setting 32-bit I/O support flag to 1
 setting multcount to 16
 setting using_dma to 1 (on)
 setting xfermode to 66 (UltraDMA mode2)
 multcount    = 16 (on)
 I/O support  =  1 (32-bit)
 using_dma    =  1 (on)
 readahead    =  8 (on)

Syslog shows:
Nov 19: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Nov 19: hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
Nov 19: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Nov 19: hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
Nov 19: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Nov 19: hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
Nov 19: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Nov 19: hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
Nov 19: ide0: reset: success

Trying various combinations of the switches results in the same errors
and the drive is reset each time.

It certainly looks as though there is some issue with the kernel and
my drive here :-(

Cheers.
Mark.



Reply to: