Jump to content

[HowTo] Speed up hard disk access


greeze
 Share

133 posts in this topic

Recommended Posts

ok, this was pissing me off immensely so I dug into it and have a fix (for Intel chipsets anyway).  What it comes down to is, as you suspected, you're not running Ultra-DMA but rather PIO because you don't have a proper driver for your ATA chipset.  Assuming you have an Intel system, you need to get the AppleIntelPIIXATA driver installed.

 

If you have XCode installed, you can build it yourself; it's included with the Darwin sources.  Go to http://www.opensource.apple.com/darwinsour...IXATA-17.tar.gz.  Extract the archive and open the "AppleIntelPIIXATA.pbproj" file in XCode and hit Command-B to build it.  Now you need to fix the permissions: in a command window cd into Build/Development and type "chown -R root AppleIntelPIIXATA.kext".  Copy AppleIntelPIIXATA.kext into your System/Library/Extensions folder, reboot, and enjoy a good 20x HD performance boost (that's what I got anyway).  Cut my boot time in half too..

 

Or if you prefer, here's a precompiled tarball.  Extract the tar.gz file and copy the kext into /System/Library/Extensions.

 

Can some one repost this file please?

Link to comment
Share on other sites

I was getting 15.41 before the patch, and then after the patch I get 14.71. Also, Disk Utility locks up, and Force Quit won't get rid of it. I'm on a Dell Latitude C640, chipset: Intel i845

10-1-130-211:~ llamaguy$ kextstat | grep "ATA"
  33    3 0xd8aed000 0xd000     0xc000     com.apple.iokit.IOATAFamily (1.6.0f2)
  34    0 0xd8b01000 0x7000     0x6000     com.apple.driver.AppleIntelPIIXATA (1.6) <33 16 11>
  38    0 0xd8c2f000 0x4000     0x3000     com.apple.iokit.IOATAPIProtocolTransport (1.4.0) <37 33 11>
  40    0 0xd8d48000 0x9000     0x8000     com.apple.iokit.IOATABlockStorage (1.4.1) <39 33 11>

 

10-1-130-211:~ llamaguy$ ioreg | grep "ATA"
   | |   | +-o AppleIntelPIIXATARoot  <class AppleIntelPIIXATARoot, !registered, !matched, active, busy 0, retain count 6>
   | |   |   +-o PRI@0  <class AppleIntelPIIXATAChannel, registered, matched, active, busy 0, retain count 11>
   | |   |   | +-o AppleIntelPIIXPATA  <class AppleIntelPIIXPATA, registered, matched, active, busy 0, retain count 8>
   | |   |   |   +-o ATADeviceNub@0  <class ATADeviceNub, registered, matched, active, busy 0, retain count 6>
   | |   |   |     +-o IOATABlockStorageDriver  <class IOATABlockStorageDriver, registered, matched, active, busy 0, retain count 7>
   | |   |   |       +-o IOATABlockStorageDevice  <class IOATABlockStorageDevice, registered, matched, active, busy 0, retain count 5>
   | |   |   +-o SEC0@1  <class AppleIntelPIIXATAChannel, registered, matched, active, busy 0, retain count 12>
   | |   |     +-o AppleIntelPIIXPATA  <class AppleIntelPIIXPATA, registered, matched, active, busy 0, retain count 8>
   | |   |       +-o ATADeviceNub@0  <class ATADeviceNub, registered, matched, active, busy 0, retain count 6>
   | |   |         +-o IOATAPIProtocolTransport  <class IOATAPIProtocolTransport, registered, matched, active, busy 0, retain count 8>

 

Disk Test	14.80	
Sequential	26.90	
 Uncached Write	21.15	12.98 MB/sec [4K blocks]
 Uncached Write	22.86	12.93 MB/sec [256K blocks]
 Uncached Read	44.51	13.03 MB/sec [4K blocks]
 Uncached Read	28.41	14.28 MB/sec [256K blocks]
Random	10.21	
 Uncached Write	3.22	0.34 MB/sec [4K blocks]
 Uncached Write	25.32	8.11 MB/sec [256K blocks]
 Uncached Read	47.76	0.34 MB/sec [4K blocks]
 Uncached Read	48.30	8.96 MB/sec [256K blocks]

 

Do you think it has anything to do with the top level PIIATA being !registered and !matched?

 

I should be getting 20-30 with this hard drive...

 

edit: Yeah... and disabling the kext's and deleting my cache was a bad idea. The OS X installation is screwed... won't even boot into safe mode.

 

edit2: I have OS X installed twice on this computer on seperate partitions... so I booted into single user mode and renamed the drivers back from .disabled, and I'm up and running again.

Link to comment
Share on other sites

I'm going to sticky this as I've seen this question being asked about 3 or 4 times already elsewhere. Hopefully, if they wont search, they'll at least see it up top.

Link to comment
Share on other sites

Hello,

 

I decided to post the score also.

 

Results 55.08

System Info

Xbench Version 1.2

System Version 10.4.1 (8B1025)

Physical RAM 512 MB

Drive Type IC35L080AVVA07-0

Disk Test 55.08

Sequential 83.14

Uncached Write 77.10 47.34 MB/sec [4K blocks]

Uncached Write 80.19 45.37 MB/sec [256K blocks]

Uncached Read 88.00 25.75 MB/sec [4K blocks]

Uncached Read 88.41 44.43 MB/sec [256K blocks]

Random 41.18

Uncached Write 15.21 1.61 MB/sec [4K blocks]

Uncached Write 80.87 25.89 MB/sec [256K blocks]

Uncached Read 92.53 0.66 MB/sec [4K blocks]

Uncached Read 121.67 22.58 MB/sec [256K blocks]

 

That's w/o the patch. I guess I'll just leave it as it is. Oh, here's the kextstat | grep -i Intel

 

0xd8c1e000 0x7000 0x6000 com.apple.driver.AppleIntelPIIXATA (1.6) <29 23 11>

47 0 0xd6f6e000 0xa000 0x9000 com.apple.driver.AppleIntelIntegratedGraphics (2.0.0) <46 11>

50 0 0xd6f9c000 0x4000 0x3000 com.apple.driver.AppleAC97AudioIntelICH (1.0.0) <49 23 11>

62 0 0xd8c6a000 0x8000 0x7000 com.apple.driver.AppleIntel8255x (1.4) <57 23 5 4 3 2>

63 0 0xd8cb7000 0x21000 0x20000 com.apple.driver.AppleIntel830 (4.0.0) <59 46 23 11>

Link to comment
Share on other sites

Any chance of modifying this to work with an ATI/ALi southbridge?

 

Hello,

 

I decided to post the score also.

 

Results 55.08

System Info 

  Xbench Version  1.2

  System Version  10.4.1 (8B1025)

  Physical RAM  512 MB

  Drive Type  IC35L080AVVA07-0

Disk Test 55.08

  Sequential 83.14

  Uncached Write 77.10 47.34 MB/sec [4K blocks]

  Uncached Write 80.19 45.37 MB/sec [256K blocks]

  Uncached Read 88.00 25.75 MB/sec [4K blocks]

  Uncached Read 88.41 44.43 MB/sec [256K blocks]

  Random 41.18

  Uncached Write 15.21 1.61 MB/sec [4K blocks]

  Uncached Write 80.87 25.89 MB/sec [256K blocks]

  Uncached Read 92.53 0.66 MB/sec [4K blocks]

  Uncached Read 121.67 22.58 MB/sec [256K blocks]

 

That's w/o the patch. I guess I'll just leave it as it is. Oh, here's the kextstat | grep -i Intel

 

0xd8c1e000 0x7000    0x6000    com.apple.driver.AppleIntelPIIXATA (1.6) <29 23 11>

  47    0 0xd6f6e000 0xa000    0x9000    com.apple.driver.AppleIntelIntegratedGraphics (2.0.0) <46 11>

  50    0 0xd6f9c000 0x4000    0x3000    com.apple.driver.AppleAC97AudioIntelICH (1.0.0) <49 23 11>

  62    0 0xd8c6a000 0x8000    0x7000    com.apple.driver.AppleIntel8255x (1.4) <57 23 5 4 3 2>

  63    0 0xd8cb7000 0x21000    0x20000    com.apple.driver.AppleIntel830 (4.0.0) <59 46 23 11>

Link to comment
Share on other sites

The reason this is possible with some chipsets is they are fairly backwards compatible with ones that already have code written for them. For chipsets that aren't related to anything else (like ATI), we're probably out of luck.

Link to comment
Share on other sites

The reason this is possible with some chipsets is they are fairly backwards compatible with ones that already have code written for them.  For chipsets that aren't related to anything else (like ATI), we're probably out of luck.

 

The system will try to find an exact driver match based on the device ID... if it can't find it, it will attempt to use a generic driver... There is a Generic ATA driver, which is quite a bit slower, but is usually compatible. When you boot in verbose you will see something like AppleIntelPIIXATA or AppleGenericPCATA when it finds your hard drive controllers.

 

And of course, one you're booted you can use tools such as ioreg and kextstat to see what hardware was found and what kernel extensions were loaded.

Link to comment
Share on other sites

...or, just use SATA drives on an intel 915 mobo.

 

Disk Test 57.15

Sequential 92.40

Uncached Write 90.27 55.43 MB/sec [4K blocks]

Uncached Write 97.13 54.96 MB/sec [256K blocks]

Uncached Read 76.38 22.35 MB/sec [4K blocks]

Uncached Read 113.33 56.96 MB/sec [256K blocks]

Random 41.37

Uncached Write 14.80 1.57 MB/sec [4K blocks]

Uncached Write 83.11 26.61 MB/sec [256K blocks]

Uncached Read 99.67 0.71 MB/sec [4K blocks]

Uncached Read 142.17 26.38 MB/sec [256K blocks]

Link to comment
Share on other sites

for us that used the patched dvd installer, do we need to modify anything?

i think my numbers looks pretty good, except for the uncached sequential read

 

 

Disk Test 61.06

Sequential 92.65

Uncached Write 114.02 70.01 MB/sec [4K blocks]

Uncached Write 100.54 56.89 MB/sec [256K blocks]

Uncached Read 98.55 28.84 MB/sec [4K blocks]

Uncached Read 69.88 35.12 MB/sec [256K blocks]

Random 45.53

Uncached Write 16.32 1.73 MB/sec [4K blocks]

Uncached Write 98.95 31.68 MB/sec [256K blocks]

Uncached Read 107.18 0.76 MB/sec [4K blocks]

Uncached Read 139.83 25.95 MB/sec [256K blocks]

Link to comment
Share on other sites

[search words: speed slow hard disk drive access read write sequential random ultra dma udma]

 

NOTE: This fix only seems to work for Intel chipsets. :)

 

To check your hard drive speed, download Xbench from here:

http://www.xbench.com/Xbench_1.2.dmg

And do the disk test.  If you're getting speeds around 2-3 Megs/Sec, then the following steps should hopefully fix the problem for you.

 

1) Download AppleIntelPIIXATA.kext from here: (Thank you, madcowsb!)

AppleIntelPIIXATA.kext.zip (Double-click it to extract it.)

 

2) In a terminal:

cd /System/Library/Extensions/

sudo mv AppleIntelPIIXATA.kext AppleIntelPIIXATA.kext.disabled (Just in case you already have this kext installed.  If not, you may receive an error.  Don't worry about it.)

sudo cp [path to downloaded file]/AppleIntelPIIXATA.kext ./

sudo chown -R root:wheel AppleIntelPIIXATA.kext

 

3) Reboot and enjoy a speed boost.

 

4) If, after a SECOND reboot, the speed boost has disappeared, download IOATAFamily.kext from here: (This comes off of the Darwin 8.01 install CD.)

IOATAFamily.kext.zip (Double-click it to extract it.)

 

5) In a terminal:

cd /System/Library/Extensions/

sudo mv IOATAFamily.kext IOATAFamily.kext.disabled

sudo cp [path to downloaded file]/IOATAFamily.kext ./

sudo chown -R root:wheel IOATAFamily.kext

 

6) Just to be on the safe side, delete the following files (not sure if this is necessary):

/System/Library/Extensions.kextcache

/System/Library/Extensions.mkext

(Don't worry, Tiger will rebuild these files on startup.)

 

7) Reboot.

 

(Remember that your original kext files have been renamed with a ".disabled" extension.  If you have any problems, delete the kexts that you added, and rename the originals back to their original filenames.)

 

I think that covers everything.

 

 

With regards to the hard drive, are you referring to the sequential disk test or the ramdom disk test?

Link to comment
Share on other sites

one silly question, some one may help me out

 

when I tried , I got this

 

inspiron:/users curtis$ cd /System/Library/Extensions/

inspiron:/System/Library/Extensions curtis$ sudo mv AppleIntelPIIXATA.kext AppleIntelPIIXATA.kext.disabled

Password:

mv: rename AppleIntelPIIXATA.kext to AppleIntelPIIXATA.kext.disabled: No such file or directory

inspiron:/System/Library/Extensions curtis$ sudo cp ~/Desktop/AppleIntelPIIXATA.kext ./

cp: /Users/curtis/Desktop/AppleIntelPIIXATA.kext is a directory (not copied).

 

 

seems the command has a problem?

Link to comment
Share on other sites

one silly question, some one may help me out

 

when I tried , I got this

 

inspiron:/users curtis$ cd /System/Library/Extensions/

inspiron:/System/Library/Extensions curtis$ sudo mv AppleIntelPIIXATA.kext AppleIntelPIIXATA.kext.disabled

Password:

mv: rename AppleIntelPIIXATA.kext to AppleIntelPIIXATA.kext.disabled: No such file or directory

inspiron:/System/Library/Extensions curtis$ sudo cp ~/Desktop/AppleIntelPIIXATA.kext ./

cp: /Users/curtis/Desktop/AppleIntelPIIXATA.kext is a directory (not copied).

seems the command has a problem?

 

The only question that is slilly is the one that is not asked.

 

AppleIntelPIIXATA.kext is not in that directory, the error message gives you some clue.

 

The AppleIntelPIIXATA.kext is inside in another kext.

goto /System/Library/Extensions/AppleIntelPIIXATA.kext/Contents/Plugins and there is.

Link to comment
Share on other sites

Hello to everybody,

 

I'm following all the discussions and suggestions with great interest. After installing a deficient Tiger within VMWare on a Sony Vaio Laptop I bought myself some hardware and got everything nearly perfectly running. This includes a lot of software packages, etc.

I even updated a lot of programs like ITunes with the newest releases without problems. Safari and ITunes via Rosetta start up within a second and the only problems I run into a related with music software lik Garageband and Logic Pro.

 

For this reason I downloaded the XCode Project and I ran the XBench test. Actually I'm not really sure if I need to replace my kext as the hardware seems to respond find. XBench shows several indicators for the harddisk. I will give a try.

 

Thanks a lot to all of you for the great work.

 

uide

Link to comment
Share on other sites

Ok, it seems that I don't need the kext mentioned here as my XBench results seem to be quite good:

 

Disk Test 40.11

Sequential 56.98

Uncached Write 65.79 40.40 MB/sec [4K blocks]

Uncached Write 69.01 39.05 MB/sec [256K blocks]

Uncached Read 35.69 10.45 MB/sec [4K blocks]

Uncached Read 80.01 40.21 MB/sec [256K blocks]

Random 30.94

Uncached Write 10.81 1.14 MB/sec [4K blocks]

Uncached Write 62.47 20.00 MB/sec [256K blocks]

Uncached Read 85.15 0.60 MB/sec [4K blocks]

Uncached Read 111.17 20.63 MB/sec [256K blocks]

 

If it's not like this please tell me.

 

uide

Link to comment
Share on other sites

  • 2 weeks later...

I have a Compaq presario with ali chipset (very strong)

 

anyone idia for more hd speed?

 

now i ave 2mbit tr .....it's very slow

 

 

i try to change appleintelpIIxata.kext and ioatafamily.kext

 

but

when i start the system, it load the generic driver for ata.

 

i think that rename the file generic ata with appleintelpIIxata, the system load the apple intelpIIxata

 

what do you think about it?

 

solution?

 

-------

my english is orrible.....try to translate!!

Link to comment
Share on other sites

mmmm

i think Ali chipset works like any generic intel chipset or via.....

 

i assume

2mb trnsfer rate is too slow for all

 

my objective is'nt 22mbit transfer with ali chipset but 8 or 10 mbit....

 

ithink a genric intel o via with no special option can tranfer 8 or 10

 

 

if the ali chipset work like a older intel o via i can load the kext (modified)

 

can anyone help me with a generic kext with more perfomace?

Link to comment
Share on other sites

Results 49.26

System Info

Xbench Version 1.2

System Version 10.4.1 (8B1025)

Physical RAM 2048 MB

Model ADP2,1

Drive Type ST3160023AS

CPU Test 17.58

GCD Loop 90.67 4.78 Mops/sec

Floating Point Basic 67.47 1.60 Gflop/sec

vecLib FFT 5.33 175.94 Mflop/sec

Floating Point Library 70.67 12.31 Mops/sec

Thread Test 93.76

Computation 82.30 1.67 Mops/sec, 4 threads

Lock Contention 108.94 4.69 Mlocks/sec, 4 threads

Memory Test 117.02

System 97.84

Allocate 94.74 347.90 Kalloc/sec

Fill 85.26 4145.71 MB/sec

Copy 119.34 2464.84 MB/sec

Stream 145.55

Copy 141.24 2917.33 MB/sec

Scale 141.95 2932.57 MB/sec

Add 150.49 3205.74 MB/sec

Triad 149.00 3187.46 MB/sec

Quartz Graphics Test 92.41

Line 89.56 5.96 Klines/sec [50% alpha]

Rectangle 70.04 20.91 Krects/sec [50% alpha]

Circle 73.31 5.98 Kcircles/sec [50% alpha]

Bezier 94.58 2.39 Kbeziers/sec [50% alpha]

Text 224.66 14.05 Kchars/sec

OpenGL Graphics Test 48.11

Spinning Squares 48.11 61.04 frames/sec

User Interface Test 72.55

Elements 72.55 332.98 refresh/sec

Disk Test 48.50

Sequential 97.60

Uncached Write 99.07 60.83 MB/sec [4K blocks]

Uncached Write 95.69 54.14 MB/sec [256K blocks]

Uncached Read 90.26 26.41 MB/sec [4K blocks]

Uncached Read 106.82 53.69 MB/sec [256K blocks]

Random 32.27

Uncached Write 10.73 1.14 MB/sec [4K blocks]

Uncached Write 74.55 23.86 MB/sec [256K blocks]

Uncached Read 97.87 0.69 MB/sec [4K blocks]

Uncached Read 140.46 26.06 MB/sec [256K blocks]

 

 

System profiler says QE and CI are not supported.How do my numbers look :blink: ?

 

Intel 3 Ghz Pentium 4, 2 GB DDR2 Ram, 160 Gb Hard, AC 97 Audio enabled, no networking(I will get a compatible ethernet card), Final Cut Pro 4.5 HD +Logic Pro 7 installed and working.

Link to comment
Share on other sites

  • 1 month later...
 Share

×
×
  • Create New...