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: