Jump to content

Slow Hard Drive Performance ICH10


195 posts in this topic

Recommended Posts

Think I just solved my beachballing problem.

 

I tried switching around my 2 sata disks to different ports. Cleared the thick layer of dust that has settled on each of them. Then I noticed there was a hole on top of one of them saying "DO NOT COVER".

 

So it's either that or the switching of ports which solved it for me. Haven't beachballed for hours now with every app that I can throw at it running at the same time. Previously I was getting 3-4 every hour! Also ran XBench and my 3 year old harddisk averaged 100 across the board which is a decent score I think.

Link to comment
Share on other sites

Hey, I have a MacPro4,1 octacore 2x2,6GHz w/16GB running Snow Leopard retail. Although my four 1.5TB Seagate drives are running in a hardware RAID10 using an areca sas controller, I have connected two of the onboard sata ports to an eSATA brackets, so I could connect two eSATA drives and do some testing, if you tell me what info you need.

 

Before Snow Leopard I was running the four internal drives as an apple software raid 10 w/10.5.8, but I switched to harware raid with the arrival of my maxconenct sas backplane and snow leopard, so I can't tell you if there are anny issues with many drives in Snow Leopard on native MacPro yet.

 

I'll be building two Core i7 systems w/ASUS P6T SE w/3x1TB each very soon (hw already ordered), so I'd love to see this prob fixed...

Link to comment
Share on other sites

After another tons of tests I got to a conclusion, IMHO is not a DSDT bug but a BIOS one(if is a bug..).

With same DSDT sometimes works. most dosen't with a 90% rate of failure(tired to flash my BIOS and restart forever)

A friend of mine founded that is a missing interrupt on ioreg, look:

 

Working dump pic:

 

WORKING.jpg

 

Not working dump pic:

 

NOT_WORKING.jpg

 

Also notice on not working one the new entry on ioreg IOPCIMSIMode

 

So, or is a BIOS bug or IOPCIFamily is borked, for us...

 

I think we can play with BIOS a bit:

 

PCI_IRQ_Routing.jpg

 

But so far I have no idea what to change there...

 

@Atmosfear If you don't mind I will PM you later for some "dirty" dumps..

In mean time if you can. try to add some hdd's on those ports and see if you get smth like us...or any error, also if you have plug some cheap sata dvdrom like asus or lg, see if you get some serial atapi errors...

Link to comment
Share on other sites

@THe KiNG: I think that IOPCIMSIMode is not the problem, because it is also missing on the MacPro4,1. But could you expand the entry of IOInterruptControllers? On MacPro4,1 this has 17 entries and the first entry is "io-apic-0", while all the others are IOPCIMessageInterruptController. My guess is, that you are missing entry 0, which leads me to believe, that IO-APIC is disabled in your BIOS. Please check in the ASUS BIOS under Power section and play with ACPI 2.0 Support on/off and APIC support on/off.

 

So far I have the apple supplied DVD-RW on SATA and a 1TB WD Green in an external case connected to the onboard ports and so far no problems. I will add another internal SATA DVD-RW (NEC Optiact 7240S) and an additional 1TB eSATA drive and do some test using Blackmagic Disk Speed Test.

 

Btw. you guys should be using Blackmagic Disk Speed Test or AJA System Test for disk benchmark. XBench is one flaky peace of software, especially the disk benchmarks, which return very inaccurate or plain wrong results.

 

Attached pic of IOReg on MacPro4,1:

 

post-18626-1252532903_thumb.png

Link to comment
Share on other sites

OK, I did some disk benchmarks:

 

1st eSATA drive, connected to port 5, WD Green 1 TB 5400 RPM, fairly empty: 87 MByte/s r/w

2nd eSATA drive, connected to port 6, Samsung HD501LJ 1 TB 7200 RPM, nearly full: 70 MByte/s r/w

 

For comparison system volume, HW RAID10, 4x Seagate 7200 RPM 1.5 TB on Areca ARC-1212 SAS controller: 340 MByte/s read, 245 MByte/s write. Using the OnBoard ports using 10.5.8 and Apple SW RAID 10 this delivered about 220/200 MByte/s r/w.

 

Both numbers are sane, the samsung drive is rather slow because drives get slower towards the end of the drive and it only has a couple gigs free.

 

All tests done using AJA System Test with a 4 GB test file.

 

I didn't notice any SATA related errors int he system log.

 

I couldn't test the second optical drive yet, because I chose the wrong screw holesbecause I was to lazy and only used two instead of four screws, so it would jam with the case on tray eject ;-) But I didn't have any problems writing or reading DVDs with the apple-shipped loud-as-hell LG drive.

 

Update: SATA DVD-RW (NEC OptiArc AD7240S) tested, no problems/errors on console reading the whole Snow Leopard DVD using Pacifist.

Edited by Atmosfear
Link to comment
Share on other sites

I am seeing the same slow behavior on secondary sata ports behavior on my P6T, and can confirm that "IOPCIMSIMode" is indeed True on my board -- this is on Leopard. Haven't moved to Snow yet.

 

I had messed with this several weeks back quite a bit, and had also come to the conclusion that it was a PCI/Interrupt related problem, likely due to the way the BIOS was initializing the SATA ports. Your findings support that theory. Eventually I worked around it by connecting my secondary drive to the JMicron controller.

 

On another machine with the same motherboard and OS version, which is booted into a state where secondary drives are working fine, I can confirm that the IOPCIMSIMode is NOT "True".

 

Both machines are Asus P6T, Core i7 920, running 10.5.8.

 

The second machine has 1333 speed RAM in it, which, when run at 1083Mhz (180 BCLK, 3.6Ghz CPU), tends not to have the slow sata problem. However, if I boot that machine with the RAM at 14xx mhz, same BCLK, the problem tends to occur. When I noticed this, I did not know about this ioreg business. I will try messing with that machine a bit to see if I can reliably cause the problem to occur and whether it displays this IOPCIMSIMode characteristic.

 

Thanks for your research. I'll respond with additional findings later.

 

 

 

 

 

 

That was as far as I had gotten

Link to comment
Share on other sites

For the slow SerialATAPI device

 

Please do the following

1. install PCI_Tool

2. Restart as requested and then

3. Open terminal and type "lspci -nn" and post to me what it says

 

PCI_Tool.zip

Attached lspci outpiut, note that the "Multimedia video controller" is a Blackmagic Design Intensity Pro HDMI I/O card and the "RAID bus controller" is an Areca ARC-1212 SAS RAID controller, so those are not standard MacPro devices. The system also has the BTO wireless option built in.

macpro41_lspci.txt

Link to comment
Share on other sites

MacOSXUpd10.6.1.dmg

 

Mac OS X v10.6.1 Update

 

Includes general operating system fixes that enhance the stability, compatibility, and security, including fixes for:

  • compatibility with some Sierra Wireless 3G modems
  • an issue that might cause DVD playback to stop unexpectedly
  • some printer compatibility drivers not appearing properly in the add printer browser
  • an issue that might make it difficult to remove an item from the Dock
  • instances where automatic account setup in Mail might not work
  • an issue where pressing cmd-opt-t in Mail brings up the special characters menu instead of moving a message
  • Motion 4 becoming unresponsive

Link to comment
Share on other sites

With APIC off=Panic

With ACPI 2.0 on/off no change.

The problem seems to be on PCI IRQ Routing...

...

 

@Atmosfear please do lspci -nnvvvb under Ubuntu 64bit if you can

 

I did the dump under Mac OS X using the pciutils port, I'll attach the full dump.

 

Also regarding the IOPCIMSIMode difference: This seems to indicate the usage of Message Signaled Interrupts, these can be enabled/disabled by writing to the SATA controllers registers and are always disabled in IDE mode, which would make sense, as to why IDE mode users do not see the problem.

 

See the specs on the ICH10 chipset, page 513 and following on details regarding MSI configuration:

http://www.intel.com/assets/pdf/datasheet/319973.pdf

 

You can also see that on MacPro4,1 the MSI are disabled by looking at the lspci dump:

 

MacPro4,1

00:1f.2 SATA controller [0106]: Intel Corporation Device [8086:3a22] (prog-if 01 [AHCI 1.0])
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 17
Region 0: I/O ports at 4138
Region 1: I/O ports at 414c
Region 2: I/O ports at 4130
Region 3: I/O ports at 4148
Region 4: I/O ports at 4020
Region 5: Memory at 8b825000 (32-bit, non-prefetchable)
Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=4/4 Enable-
	Address: fee00000  Data: 40a0
Capabilities: [70] Power Management version 3
	Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
	Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [a8] SATA HBA <?>
Capabilities: [b0] PCIe advanced features <?>

 

ASUS P6T X58

00:1f.2 SATA controller [0106]: Intel Corporation 82801JI (ICH10 Family) SATA AHCI Controller [8086:3a22] (prog-if 01)
Subsystem: ASUSTeK Computer Inc. Device [1043:82d4]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 14
Region 0: I/O ports at 8c00
Region 1: I/O ports at 8880
Region 2: I/O ports at 8800
Region 3: I/O ports at 8480
Region 4: I/O ports at 8400
Region 5: Memory at f7ffc000 (32-bit, non-prefetchable)
Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/4 Enable+
Address: feeff00c Data: 41b1
Capabilities: [70] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [a8] SATA HBA <?>
Capabilities: [b0] PCIe advanced features <?>

 

Look closely at Capabilities: [80] Message Signalled Interrupts, it says Enable- on MacPro and Enable+ on X58. My guess is that Mac OS X can't handle Message Handled Interrupts for AHCI correctly, causing the slowdowns.

macpro41_lspcivvb.txt

Link to comment
Share on other sites

Hi all...

 

I deleted AppleHPET.kext and it seems that SATA slow performance is gone...

 

Im gonna try some more and let u guys know the outcome...

 

Back soon with more reports...

 

Back, seems that this work.

 

Ive rebooted the computer into Leopard, win7 and SL like 10-15 times now

Even turned my power off totally. Still work.

 

I hope that this will work for all of us...

 

 

Really dont know if AppleHPET.kext is important....

 

Good luck , Guys

Link to comment
Share on other sites

Hi all!

 

I tried passw method and deleted AppleHPET.kext (of course made a backup before).

Then i had kernel panics cause of AppleIntelPowerManagement.kext (or something like that).

Installed NullCPUPowerManagement.kext and now everything is working like it should.

 

Before i had a lot of problems with my DVD. And now? Nothing, nada! :blink:

 

... now updating my Signatur.

 

Maybe someone can find out why deleting this kext works.

Link to comment
Share on other sites

Yes it works with those disabled, but the system is still not stable, not to mention power management is gone.

The bug is on PCI0 IRQ Routing Table(PR00 and AR00)

IRQ 14 is used for both HPET and SATA(0x001FFFFF) notice on working ioreg pic that is missing on HPET and is present on SATA(io-apic-0)

So that table has to be redesigned, as a fun part i added one from gigabyte it works but system is slow and hdd order is messed...

Link to comment
Share on other sites

I agree with you.

To check the stability of the system without the AppleHPET.kext click on Activity Monitor.app and then press Window then Activity Monitor and then Show All Processes, You can see that [kernel_task(0):100% CPU]

The AppleHPET.kext is definitely required for a stable system with proper power management.

 

 

Yes it works with those disabled, but the system is still not stable, not to mention power management is gone.

The bug is on PCI0 IRQ Routing Table(PR00 and AR00)

IRQ 14 is used for both HPET and SATA(0x001FFFFF) notice on working ioreg pic that is missing on HPET and is present on SATA(io-apic-0)

So that table has to be redesigned, as a fun part i added one from gigabyte it works but system is slow and hdd order is messed...

Link to comment
Share on other sites

You will need to add this part on your DSDT

 

Device (HPET)

{

Name (_HID, EisaId ("PNP0103"))

Name (CRS, ResourceTemplate ()

{

IRQNoFlags ()

{0}

IRQNoFlags ()

{8}

Memory32Fixed (ReadOnly,

0xFED00000, // Address Base

0x00000400, // Address Length

_Y0F)

})

--------

Method (_STA, 0, NotSerialized)

{

If (LEqual (OSFL (), 0x07D1))

--------

 

Link to comment
Share on other sites

I agree with you.

To check the stability of the system without the AppleHPET.kext click on Activity Monitor.app and then press Window then Activity Monitor and then Show All Processes, You can see that [kernel_task(0):100% CPU]

The AppleHPET.kext is definitely required for a stable system with proper power management.

 

 

nope .... kernel_task is on about 0.4 % CPU

Link to comment
Share on other sites

 Share

×
×
  • Create New...