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

Re: hdparm and DMA



hi mdevin

> On Mon, Nov 18, 2002 at 16:16:57 +0100, Emil Pedersen wrote:
> > > So are the read times as expected for an IDE ATA133, 7200RPM, 40GB drive?
> > 
> > Certainly not.  Bellow is what I got from my IBM 7200 rpm disk, (using
> > UDMA66):
> >
> I only just got this computer and hard drive 1 week ago and it is
> supposed to be quite reasonable.
> 
> Here is what Western Digital's site says:
> Rotational Speed		7,200 RPM (nominal)
> Buffer Size 			8 MB
> Buffer To Disk 			591.0 Mbits/s (Max)
> Read Seek Time (Average) 	8.9 ms
> Write Seek Time (Average) 	10.9 ms (average)
> Track-To-Track Seek Time 	2.0 ms (average)
> Full Stroke Seek 		21.0 ms (average)
> Average Latency 		4.2 ms (nominal)
> Mode 5 Ultra ATA 		100.0 MB/s
> Mode 4 Ultra ATA 		66.6 MB/s
> Mode 2 Ultra ATA 		33.3 MB/s
> Mode 4 PIO 			16.6 MB/s
> Mode 2 multi-word DMA 		16.6 MB/s


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


these are theoretical maximum xfer speed ..
	- the metric of interest is "timing buffered disk read"
	- ignore the buffer-cache reads

consider yourself lucky if your system ( buffered disk reads )
can achieve 1/2 of those rated maximum disk transfers
	- if you miss one cpu clock cycle .. it takes you 2x longer
	to read the same data

you will also get different results for different configurations
( ie.. changing just one parameter/variable )
	- different kernel - identical hardware setup
	- different disk - identical hardware setup
	- different motherboard
	- different amounts of memory
	...

different motherboards is the biggest variable ...
 	( w/ dma on in both cases -- different motherboard )
	20MB/sec vs  50MB/sec variations 

> # hdparm -c1 -d1 /dev/hda
> /dev/hda:
>  setting 32-bit I/O support flag to 1
>  setting using_dma to 1 (on)
>  I/O support  =  1 (32-bit)
>  using_dma    =  1 (on)

thats a good option, you might also wanna try

hdparm -c3 -d1 -u1 /dev/hda 
	-u1  allow the system to process other systeminterrupts
	while waiting for the disk

---
--- you can also check your cas timing speed to tune that to the
--- speed of your actual memory used ...
---	pc100 vs pc133 vs pc2100  
---
---	Do NOT mix different memory speeds ...
 
===
=== CAUTION
===	playing will hdparm options -- you risk losing data on your disks


have fun
alvin



Reply to: