Apologies for duplication of info above.
Unfortunately I spoke too soon, after about 20minutes of running the rr62x module I started seeing hpt resets and FIS calls were unable to go through. The same behaviour occurred - drives were booted out of the controller one at a time and were no longer visible to the system.
I found a post here that summarizes the same issue I had pretty much.
http://ubuntuforums.org/showthread.php?t=1592227
I've since ordered a Sil based chipset SATA controller because other folks have had good experience with it + external SATA bay and I should receive it today,
(ADSA3GPX1-2E Raid 5 2CH Esata II Pcie). It will be slower internally as it's only SATA II/3gpbs however most of my writes are limited to gigabit line speed anyways.
For clarification here is the hardware I had issues with. Everything was done in RHEL6 using software raid (mdadm) and the XFS filesystem.
(storage)
Sans Digital TowerRAID TR8M-B 8 Bay SATA (comes with rocketraid622a below)
4 x 2TB Samsung spinpoint F4 5400rpm low-power SATA
1 x 2TB Seagate 5400 rpm low-power SATA (all drives in 5drive mdadm RAID6)
(SATA controllers)
rocket622a raidcard (rr62x kernel module) - hpt resets, drives dissapear
rocketraid622 controller card (marvel 88SE9123) - drives dissapear.
When the new sil 332 card arrives today I'll give that a shot and post my findings.
Here are the logs below from the last card I tried.
Note: both the Marvell 88SE9123 (622) and rocketrai622a (rr62x) had the same I/O errors below right before the drives were kicked out of the system. Only the rr62x module was verbose enough to log hpt resets and FIS traversal errors.
== rr62x ==
rr62x:hpt_reset(8/0/1)
rr62x:[0 0 ] failed to disable comm status change bits
rr62x:[0 0 ] start port.
rr62x:[0 0 ] start port hard reset (probe 1).
rr62x:[0 1 ] failed to disable comm status change bits
rr62x:[0 1 ] start port.
rr62x:[0 1 ] start port hard reset (probe 1).
rr62x:[0 0 ] start port soft reset (probe 1).
rr62x:[0 0 f] failed to send 1st FIS
rr62x:[0 1 ] start port soft reset (probe 1).
rr62x:[0 1 f] failed to send 1st FIS
rr62x:[0 0 ] start port hard reset (probe 2).
Clocksource tsc unstable (delta = 202255234 ns)
Switching to clocksource jiffies
rr62x:[0 1 ] start port hard reset (probe 2).
rr62x:[0 1 ] start port soft reset (probe 2).
rr62x:[0 1 f] failed to send 1st FIS
rr62x:[0 0 ] start port soft reset (probe 2).
rr62x:[0 0 f] failed to send 1st FIS
rr62x:[0 1 ] start port hard reset (probe 3).
rr62x:[0 0 ] start port hard reset (probe 3).
rr62x:[0 1 ] start port soft reset (probe 3).
rr62x:[0 1 f] failed to send 1st FIS
rr62x:[0 0 ] start port soft reset (probe 3).
rr62x:[0 0 f] failed to send 1st FIS
rr62x:[0 1 ] start port hard reset (probe 4).
rr62x:[0 0 ] start port hard reset (probe 4).
rr62x:[0 1 ] start port soft reset (probe 4).
rr62x:[0 1 f] failed to send 1st FIS
rr62x:[0 0 ] start port soft reset (probe 4).
rr62x:[0 0 f] failed to send 1st FIS
rr62x:[0 1 ] start port hard reset (probe 5).
rr62x:[0 0 ] start port hard reset (probe 5).
rr62x:[0 1 ] start port soft reset (probe 5).
rr62x:[0 1 f] failed to send 1st FIS
rr62x:[0 0 ] start port soft reset (probe 5).
rr62x:[0 0 f] failed to send 1st FIS
rr62x:[0 1 ] start port hard reset (probe 6).
rr62x:[0 0 ] start port hard reset (probe 6).
rr62x:[0 1 ] start port soft reset (probe 6).
rr62x:[0 1 f] failed to send 1st FIS
rr62x:[0 0 ] start port soft reset (probe 6).
rr62x:[0 0 f] failed to send 1st FIS
rr62x:[0 1 ] start port hard reset (probe 7).
rr62x:[0 0 ] start port hard reset (probe 7).
rr62x:[0 1 ] start port soft reset (probe 7).
rr62x:[0 1 f] failed to send 1st FIS
rr62x:[0 0 ] start port soft reset (probe 7).
rr62x:[0 0 f] failed to send 1st FIS
rr62x:[0 1 ] start port hard reset (probe 8).
rr62x:[0 0 ] start port hard reset (probe 8).
rr62x:[0 1 ] start port soft reset (probe 8).
rr62x:[0 1 f] failed to send 1st FIS
rr62x:[0 1 ] start port hard reset (probe 9).
rr62x:[0 0 ] start port soft reset (probe 8).
rr62x:[0 0 f] failed to send 1st FIS
rr62x:[0 0 ] start port hard reset (probe 9).
rr62x:[0 1 ] start port soft reset (probe 9).
rr62x:[0 1 f] failed to send 1st FIS
rr62x:[0 1 ] start port hard reset (probe 10).
rr62x:[0 0 ] start port soft reset (probe 9).
rr62x:[0 0 f] failed to send 1st FIS
rr62x:[0 0 ] start port hard reset (probe 10).
rr62x:[0 1 ] start port soft reset (probe a).
rr62x:[0 1 f] failed to send 1st FIS
rr62x:[0 1 ] start port hard reset (probe 11).
rr62x:[0 0 ] start port soft reset (probe a).
rr62x:[0 0 f] failed to send 1st FIS
rr62x:[0 0 ] start port hard reset (probe 11).
rr62x:[0 1 ] start port soft reset (probe b).
rr62x:[0 1 f] failed to send 1st FIS
rr62x:[0 1 ] start port hard reset (probe 12).
rr62x:[0 1 3] device disconnected on port.
rr62x:[0 0 ] start port soft reset (probe b).
rr62x:[0 0 f] failed to send 1st FIS
rr62x:[0 0 ] start port hard reset (probe 12).
rr62x:[0 0 0] device disconnected on port.
rr62x:[0 0 1] device disconnected on port.
rr62x:[0 0 2] device disconnected on port.
rr62x:[0 0 3] device disconnected on port.
rr62x:hpt_reset(8/0/8)
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 d1 08 00 00 78 00
end_request: I/O error, dev sdc, sector 885117192
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 d8 80 00 00 80 00
end_request: I/O error, dev sdc, sector 885119104
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 d9 00 00 00 50 00
end_request: I/O error, dev sdc, sector 885119232
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 d9 50 00 00 20 00
end_request: I/O error, dev sdc, sector 885119312
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 d9 70 00 00 80 00
end_request: I/O error, dev sdc, sector 885119344
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 d9 f0 00 00 10 00
end_request: I/O error, dev sdc, sector 885119472
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 da 00 00 00 80 00
end_request: I/O error, dev sdc, sector 885119488
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 da 80 00 00 80 00
end_request: I/O error, dev sdc, sector 885119616
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 d3 80 00 00 80 00
end_request: I/O error, dev sdc, sector 885117824
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 db 00 00 00 80 00
end_request: I/O error, dev sdc, sector 885119744
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 db 80 00 00 80 00
end_request: I/O error, dev sdc, sector 885119872
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 dc 00 00 00 80 00
end_request: I/O error, dev sdc, sector 885120000
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 dc 80 00 00 80 00
end_request: I/O error, dev sdc, sector 885120128
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 dd 00 00 00 08 00
end_request: I/O error, dev sdc, sector 885120256
scsi 8:0:1:0: [sdc] Unhandled error code
scsi 8:0:1:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
scsi 8:0:1:0: [sdc] CDB: Read(10): 28 00 34 c1 d6 00 00 00 80 00
end_request: I/O error, dev sdc, sector 885118464
scsi 8:0:8:0: rejecting I/O to offline device
scsi 8:0:8:0: [sdf] Unhandled error code
scsi 8:0:8:0: [sdf] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
scsi 8:0:8:0: [sdf] CDB: Write(10): 2a 00 34 c1 d8 00 00 00 80 00
end_request: I/O error, dev sdf, sector 885118976
raid5: Disk failure on sdf, disabling device.
raid5: Operation continuing on 4 devices.
raid5: Disk failure on sdc, disabling device.
raid5: Operation continuing on 3 devices.
end_request: I/O error, dev sde, sector 8
md: super_written gets error=-5, uptodate=0
raid5: Disk failure on sde, disabling device.
raid5: Operation continuing on 2 devices.
end_request: I/O error, dev sdb, sector 8
md: super_written gets error=-5, uptodate=0
raid5: Disk failure on sdb, disabling device.
raid5: Operation continuing on 1 devices.
end_request: I/O error, dev sdd, sector 8
md: super_written gets error=-5, uptodate=0
raid5: Disk failure on sdd, disabling device.
raid5: Operation continuing on 0 devices.
md: md1: recovery done.
RAID5 conf printout: