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

RE: hdparm / DMA problems - options



Thanks for your help, I was going to I guess an old tutorial I found my
searching google....

http://linux.oreillynet.com/pub/a/linux/2000/06/29/hdparm.html
and
http://www.linuxgazette.com/issue79/punk.html

im using an old Compaq Presario MB that has a slot1 p3 550, and it
wouldn't take the 69, so I had to go back to the 66 and it
worked...still only 4MB/sec though, as for the ones on the ATA133 card
here are the results when I get the info on the drives:

/dev/hda:
 Timing buffer-cache reads:   128 MB in  1.32 seconds = 96.97 MB/sec
 Timing buffered disk reads:  64 MB in 14.93 seconds =  4.29 MB/sec

/dev/hdb:
 Timing buffer-cache reads:   128 MB in  1.28 seconds =100.00 MB/sec
 Timing buffered disk reads:  64 MB in 14.69 seconds =  4.36 MB/sec

/dev/hde:
 Timing buffer-cache reads:   128 MB in  1.29 seconds = 99.22 MB/sec
 Timing buffered disk reads:  64 MB in 43.21 seconds =  1.48 MB/sec

/dev/hdf:
 Timing buffer-cache reads:   128 MB in  1.30 seconds = 98.46 MB/sec
 Timing buffered disk reads:  64 MB in  1.84 seconds = 34.78 MB/sec

/dev/hdg:
 Timing buffer-cache reads:   128 MB in  1.30 seconds = 98.46 MB/sec
 Timing buffered disk reads:  64 MB in  1.94 seconds = 32.99 MB/sec

/dev/hdh:
 Timing buffer-cache reads:   128 MB in  1.29 seconds = 99.22 MB/sec
 Timing buffered disk reads:  64 MB in 45.16 seconds =  1.42 MB/sec


/dev/hde:
 multcount    = 16 (on)
 I/O support  =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 nowerr       =  0 (off)
 readonly     =  0 (off)
 readahead    = 16 (on)
 geometry     = 155061/16/63, sectors = 156301488, start = 0
 busstate     =  1 (on)

/dev/hdf:
 multcount    = 16 (on)
 I/O support  =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 nowerr       =  0 (off)
 readonly     =  0 (off)
 readahead    = 16 (on)
 geometry     = 155061/16/63, sectors = 156301488, start = 0
 busstate     =  1 (on)

/dev/hdg:
 multcount    = 16 (on)
 I/O support  =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 nowerr       =  0 (off)
 readonly     =  0 (off)
 readahead    = 16 (on)
 geometry     = 14589/255/63, sectors = 234375000, start = 0
 busstate     =  1 (on)

/dev/hdh:
 multcount    =  0 (off)
 I/O support  =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 nowerr       =  0 (off)
 readonly     =  0 (off)
 readahead    = 16 (on)
 geometry     = 14589/255/63, sectors = 234375000, start = 0
 busstate     =  1 (on)

why didn't it turn on anything on for hdh? And it didn't turn DMA on for
hde?
 Hdf and hdg look good....


Here is my config:

   hdparm -q -X66 -u1 -m16 -c1 -a16 /dev/hda
   hdparm -q -X66 -u1 -m16 -c1 -a16 /dev/hdb
   hdparm -q -X69 -d1 -u1 -m16 -c1 -a16 /dev/hde
   hdparm -q -X69 -d1 -u1 -m16 -c1 -a16 /dev/hdf
   hdparm -q -X69 -d1 -u1 -m16 -c1 -a16 /dev/hdg
   hdparm -q -X69 -d1 -u1 -m16 -c1 -a16 /dev/hdh

also I have been getting errors at boot even before I started messing
with this stuff....here is some of the stuff I get with dmesg.....

PDC20269: not 100% native mode: will probe irqs later
    ide2: BM-DMA at 0x2080-0x2087, BIOS settings: hde:pio, hdf:pio
    ide3: BM-DMA at 0x2088-0x208f, BIOS settings: hdg:pio, hdh:pio
hda: WDC WD800BB-00CAA1, ATA DISK drive
hdb: WDC WD800BB-75CAA0, ATA DISK drive
hdc: Hewlett-Packard CD-Writer Plus 8100, ATAPI CD/DVD-ROM drive
hde: WDC WD800BB-00BSA0, ATA DISK drive
hdf: WDC WD800AB-60CBA0, ATA DISK drive
blk: queue c03746e8, I/O limit 4095Mb (mask 0xffffffff)
blk: queue c0374834, I/O limit 4095Mb (mask 0xffffffff)
hdg: WDC WD1200JB-75CRA0, ATA DISK drive
hdh: WDC WD1200JB-75CRA0, ATA DISK drive
blk: queue c0374b5c, I/O limit 4095Mb (mask 0xffffffff)
blk: queue c0374ca8, I/O limit 4095Mb (mask 0xffffffff)
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
ide2 at 0x20c0-0x20c7,0x20d2 on irq 11
ide3 at 0x20c8-0x20cf,0x20d6 on irq 11
hda: attached ide-disk driver.
hda: host protected area => 1
hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=10337/240/63
hdb: attached ide-disk driver.
hdb: host protected area => 1
hdb: setmax LBA 156301488, native  156250000
hdb: 156250000 sectors (80000 MB) w/2048KiB Cache, CHS=10333/240/63
hde: attached ide-disk driver.
hde: host protected area => 1
hde: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=155061/16/63,
UDMA(100)
hdf: attached ide-disk driver.
hdf: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: task_no_data_intr: error=0x04 { DriveStatusError }
hdf: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=155061/16/63,
UDMA(100)
hdg: attached ide-disk driver.
hdg: host protected area => 1
hdg: setmax LBA 234441648, native  234375000
hdg: 234375000 sectors (120000 MB) w/8192KiB Cache, CHS=232514/16/63,
UDMA(100)
hdh: attached ide-disk driver.
hdh: host protected area => 1
hdh: setmax LBA 234441648, native  234375000
hdh: 234375000 sectors (120000 MB) w/8192KiB Cache, CHS=232514/16/63,
UDMA(100)
ide-cd: passing drive hdc to ide-scsi emulation.
Partition check:
 hda: [PTBL] [9729/255/63] hda1 hda2
 hdb: hdb1
 hde:hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
blk: queue c03746e8, I/O limit 4095Mb (mask 0xffffffff)
hdf: DMA disabled
PDC202XX: Primary channel reset.
ide2: reset: success
 hde1
 hdf: hdf1
 hdg:hdg: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdg: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdg: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdg: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdg: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdg: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdg: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdg: dma_intr: error=0x84 { DriveStatusError BadCRC }
blk: queue c0374b5c, I/O limit 4095Mb (mask 0xffffffff)
hdh: DMA disabled
PDC202XX: Secondary channel reset.
ide3: reset: success
 [PTBL] [14589/255/63] hdg1
 hdh: [PTBL] [14589/255/63] hdh1

and then later in the dmesg.....

ReiserFS version 3.6.25
hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hde: dma_intr: error=0x84 { DriveStatusError BadCRC }
reiserfs: checking transaction log (device 21:01) ...
reiserfs: replayed 29 transactions in 0 seconds
Using r5 hash to sort names
ReiserFS version 3.6.25
reiserfs: checking transaction log (device 21:41) ...
reiserfs: replayed 22 transactions in 1 seconds
Using r5 hash to sort names
ReiserFS version 3.6.25
reiserfs: checking transaction log (device 22:01) ...
reiserfs: replayed 1 transactions in 0 seconds
Using r5 hash to sort names
ReiserFS version 3.6.25
reiserfs: checking transaction log (device 22:41) ...
reiserfs: replayed 17 transactions in 1 seconds
Using r5 hash to sort names
ReiserFS version 3.6.25
blk: queue c03746e8, I/O limit 4095Mb (mask 0xffffffff)
blk: queue c0374834, I/O limit 4095Mb (mask 0xffffffff)
blk: queue c0374b5c, I/O limit 4095Mb (mask 0xffffffff)
blk: queue c0374ca8, I/O limit 4095Mb (mask 0xffffffff)
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
blk: queue c03746e8, I/O limit 4095Mb (mask 0xffffffff)
blk: queue c0374834, I/O limit 4095Mb (mask 0xffffffff)
PDC202XX: Primary channel reset.
ide2: reset: success
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x53 { DriveReady SeekComplete Index Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdf: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdf: dma_intr: error=0x84 { DriveStatusError BadCRC }
hde: DMA disabled
PDC202XX: Primary channel reset.
ide2: reset: success

the errors don't occur when I plug the drives into the MB, just when
using the card

-----Original Message-----
From: Alvin Oga [mailto:aoga@ns.Linux-Consulting.com] 
Sent: Sunday, August 10, 2003 6:26 PM
To: Nyc0n
Cc: debian-user@lists.debian.org
Subject: RE: hdparm / DMA problems - options


hi ya

On Sun, 10 Aug 2003, Nyc0n wrote:

-- if you dont know hwo to use hdparm ...
   you stand to corrupt data on your disks 
 
> Well, here is my script file, the first two drives are connected to
the
> MB, which doesn't support DMA so I left out the -d1 parameter on
those,
> the other 4 are connected to my Promise UltraATA133 Tx2 card, which
does
> support DMA....   
> 
> hdparm -q -X34 -u1 -m16 -c1 -a16 /dev/hda
> hdparm -q -X34 -u1 -m16 -c1 -a16 /dev/hdb
> hdparm -q -X34 -d1 -u1 -m16 -c1 -a16 /dev/hde
> hdparm -q -X34 -d1 -u1 -m16 -c1 -a16 /dev/hdf
> hdparm -q -X34 -d1 -u1 -m16 -c1 -a16 /dev/hdg
> hdparm -q -X34 -d1 -u1 -m16 -c1 -a16 /dev/hdh

-X34  means you are using (very old) dma mode ( dma2 ) 
	== and you wonder why its slow ??

-X66  is ata33 ( udma2 ) 
-X68  is ata66 ( udma4 )
-X69  is ata100 ( udma5 )
-X70  is ata133 ( udam6 )

- i dont use -a16 ... ( readahead  options )

 
> /dev/hda:
>  DMA modes: mdma0 mdma1 *mdma2 udma0 udma1 udma2 udma3 udma4 udma5

says this disk supports udma5 ( ata100 )
you've downgraded your disk down to mdma2 w/ hdparm instead of udma5

>  using_dma    =  0 (off)

says you should turn on dma mode in the kernel if -d1 didnt work
when hdparm was manually invoked

> /dev/hdb
>  DMA modes: mdma0 mdma1 *mdma2 udma0 udma1 udma2 udma3 udma4 udma5

you've downgraded your disk down to mdma2 w/ hdparm instead of udma5

> /dev/hde:
>  DMA modes: mdma0 mdma1 *mdma2 udma0 udma1 udma2 udma3 udma4 udma5

you've downgraded your disk down to mdma2 w/ hdparm instead of udma5 

>  using_dma    =  1 (on)

magic ...  that ide controller is supported by the kernel


.... 

> 
> Here are some speed tests after it boots with the script.....
> 
> /dev/hda:
>  Timing buffer-cache reads:   128 MB in  1.35 seconds = 94.81 MB/sec
>  Timing buffered disk reads:  64 MB in 14.95 seconds =  4.28 MB/sec

the only number you (should) care about is "buffered disk read"...

> /dev/hdb:
>  Timing buffer-cache reads:   128 MB in  1.34 seconds = 95.52 MB/sec
>  Timing buffered disk reads:  64 MB in 15.06 seconds =  4.25 MB/sec
> 
> /dev/hde:
>  Timing buffer-cache reads:   128 MB in  1.34 seconds = 95.52 MB/sec
>  Timing buffered disk reads:  64 MB in  9.19 seconds =  6.96 MB/sec

even w/ dma supported by the kernel and disk drives, you told it to run
in
mdma2 ...
	which is exactly what you're getting

c ya
alvin






Reply to: