amd64/153665: AHCI module unconsistent behaviour with SATA3 disk and SATA3 enabled controller

Erik Alexander Løkken freebsd at yasse.net
Mon Jan 3 22:50:06 UTC 2011


>Number:         153665
>Category:       amd64
>Synopsis:       AHCI module unconsistent behaviour with SATA3 disk and SATA3 enabled controller
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-amd64
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jan 03 22:50:06 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Erik Alexander Løkken
>Release:        FreeBSD 8.2-RC1
>Organization:
>Environment:
FreeBSD server.bronx.no 8.2-RC1 FreeBSD 8.2-RC1 #2: Thu Dec 30 22:43:15 CET 2010     root at server.bronx.no:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:

The AHCI module sometimes fails to identify the SATA3 disks (specifically WDC WD1002FAEX-00Z3A0 05.01D05/Western Digital Black 1TB) connected to a HighPoint Rocket 620 2P SATA III in a PCI-express 2x1 slot (identifies as Marvell 88SE912x AHCI SATA controller). 

I've tested several hardware configurations with inconsistent results. Sometimes the kernel detects the disk and sometimes it does not. 

I've tested the with two different types of disks (WD Black 1TB SATA3 + WD green 2TB SATA2). BIOS recognizes all disks in both AHCI mode and IDE mode. FreeBSD recognize all drives without the AHCI driver loaded.

AHCI recognizes the SATA3 disks when it is connected to a SATA2 controller. AHCI also recognizes SATA2 disks connected to the HighPoint controller.

I have to SATA3 disk of the same type with a disk layout consisting of zfs-aware-bootloader, swap partition and zfs-partition. The are configured with as GEOM_MIRROR for swap and zpool mirror for zfs, so I've been able to test several configurations. In all test scenarios described below the AHCI module is loaded from the boot-loader (I'm not aware of any different behavior if the module would have been compiled into the kernel). 

1 - Both SATA3 disks connected to HighPoint controller with AHCI loaded
    - This configuration leads to consistent failure
    - I've tested this configuration with different BIOS settings including disabling all on board IDE/AHCI/RAID devices
    - All tests results in zfs boot loader not finding the the zfs root pool

2 - Both SATA3 disks connected to HighPoint controller without AHCI loaded
    - This results in a working configuration

3 - Both SATA3 disks connected to the built-in controller with/without AHCI loaded
    - This results in a working configuration
    - This is my current configuration, so it is easy to provide more information from this setup

4 - The SATA3 disks connected to two different HighPoint controllers
    - This gives inconsistent results
    - Sometimes AHCI recognizes one of two disks. Never both disks.
    - Most of the times tested AHCI does not recognize any disk. 
    - I have a dmesg available from this setup

5 - One SATA3 disk connected to the HighPoint controller and one connected to the builtin controller
    - This gives inconsistent results
    - Sometimes the AHCI recognizes both disks and everything is loaded as expected
    - Sometimes AHCI does not recognize the disk connected to the HighPoint controler
    - I have dmesg available from this setup

6 - SATA2 disks connected to the HighPoint controller
    - This results in a working configuration
    - This is also part of my current setup so more information can be provided

Disk connected to SATA2 controller:
 ada7 at ahcich29 bus 0 scbus29 target 0 lun 0
 ada7: <WDC WD1002FAEX-00Z3A0 05.01D05> ATA-8 SATA 3.x device
 ada7: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
 ada7: Command Queueing enabled
 ada7: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)

Disk connected to SATA3 controller:
 ada4 at ahcich19 bus 0 scbus19 target 0 lun 0
 ada4: <WDC WD1002FAEX-00Z3A0 05.01D05> ATA-8 SATA 3.x device
 ada4: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
 ada4: Command Queueing enabled
 ada4: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)

Reports in dmesg of a disk not correctly identified:
 (aprobe1:ahcich2:0:0:0): Unexpected signature 0x0062
 (aprobe1:ahcich3:0:0:0): Unexpected signature 0x0062
 (aprobe1:ahcich9:0:0:0): Unexpected signature 0x0062


If you would like I could do more debugging, but I'm not sure where to go from here.

I have three highpoint controllers available in the machine. The current configuration consist of 7 WD Green disks (4 connected to HighPoint controllers  + 3 connected to motherboard controller) and 2 WD Black disks  (connected to motherboard) with AHCI loaded. Since the SATA3 disks are mirrored, there should not be any problems trying different setups. 


>How-To-Repeat:
Connect to SATA3 (WD Green 2TB) disks to one or to HighPoint 620 controllers. This gives consistent results of a non-working configuration.
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-amd64 mailing list