Re: Rocket Raid 622 in AHCI mode

Alexander Motin <[email protected]>
Newsgroups gmane.os.freebsd.devel.hardware
Message-ID <[email protected]>
On 28.05.2013 16:38, Mike Tancsa wrote:
> I picked up an external PMP/Cage/RR6622 combo that claims to be Sata
> III. From the BIOS, the card implies it does indeed see the SATA III drives
>
> Pic of the BIOS here
> http://tancsa.com/rr.jpg

I am not sure what does that number on photo mean, but I haven't even 
heard about any SATA3.x port multipliers yet. SiI3826 (as I can identify 
it from below) is not a new one and AFAIK only SATA 2.x.

> ahci0: <HighPoint RocketRAID 622 AHCI SATA controller> port
> 0x4090-0x4097,0x4080-0x4083,0x4070-0x4077,0x4060-0x4063,0x4050-0x405f
> mem 0xc2430000-0xc24307ff irq 16 at device 0.0 on pci1
> ahci0: AHCI v1.00 with 2 6Gbps ports, Port Multiplier supported with FBS
> ahcich0: <AHCI channel> at channel 0 on ahci0
> ahcich1: <AHCI channel> at channel 1 on ahci0

Yes, "2 6Gbps ports, Port Multiplier supported with FBS" is what this 
line of Marvell chip formally reports and it sounds great. I've tested 
it quite a long ago, but IIRC while it was fast enough with direct disk 
connection, it was quite slow working with port multipliers.

> However, performance is abysmal and worse than using a regular sii based
> SATA II card.

SiI3124 still was not beaten.

> It sees the PMP and cage as
>
> pmp0 at ahcich1 bus 0 scbus1 target 15 lun 0
> pmp0: <Port Multiplier 38261095 1706> ATA-0 device
> pmp0: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes)
> pmp0: 5 fan-out ports
> ada1 at ahcich1 bus 0 scbus1 target 0 lun 0
> ada1: <WDC WD1002FAEX-00Z3A0 05.01D05> ATA-8 SATA 3.x device
> ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
> ada1: Command Queueing enabled
> ada1: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)
> ada1: Previously was known as ad6
> ada2 at ahcich1 bus 0 scbus1 target 1 lun 0
> ada2: <WDC WD1002FAEX-00Z3A0 05.01D05> ATA-8 SATA 3.x device
> ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
> ada2: Command Queueing enabled
> ada2: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)
> ada2: Previously was known as ad7
> ada3 at ahcich1 bus 0 scbus1 target 2 lun 0
> ada3: <WDC WD1502FAEX-007BA0 05.01D05> ATA-8 SATA 3.x device
> ada3: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
> ada3: Command Queueing enabled
> ada3: 1430799MB (2930277168 512 byte sectors: 16H 63S/T 16383C)
> ada4 at ahcich1 bus 0 scbus1 target 3 lun 0
> ada4: <WDC WD2002FAEX-007BA0 05.01D05> ATA-8 SATA 3.x device
> ada4: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
> ada4: Command Queueing enabled
> ada4: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
> ada5 at ahcich1 bus 0 scbus1 target 4 lun 0
> ada5: <WDC WD2002FAEX-007BA0 05.01D05> ATA-8 SATA 3.x device
> ada5: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
> ada5: Command Queueing enabled
> ada5: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
>
> # camcontrol devlist
> <WDC WD1002FAEX-00Z3A0 05.01D05>   at scbus1 target 0 lun 0 (ada1,pass2)
> <WDC WD1002FAEX-00Z3A0 05.01D05>   at scbus1 target 1 lun 0 (ada2,pass3)
> <WDC WD1502FAEX-007BA0 05.01D05>   at scbus1 target 2 lun 0 (ada3,pass4)
> <WDC WD2002FAEX-007BA0 05.01D05>   at scbus1 target 3 lun 0 (ada4,pass5)
> <WDC WD2002FAEX-007BA0 05.01D05>   at scbus1 target 4 lun 0 (ada5,pass6)
> <Port Multiplier 38261095 1706>    at scbus1 target 15 lun 0 (pmp0,pass1)
> <WDC WD5002AALX-00J37A0 15.01H15>  at scbus2 target 0 lun 0 (pass0,ada0)
>
> Writing to the individual disks seems fine, but when all the disks are
> engaged, its very slow
>
> # zpool create -f tank raidz ada1 ada2 ada3 ada4 ada5
>
> # dd if=/dev/zero of=/tank/test1 bs=2048k count=10
> 10+0 records in
> 10+0 records out
> 20971520 bytes transferred in 60.370025 secs (347383 bytes/sec)
> # zpool export tank; zpool import tank
> # dd if=/tank/test1 of=/dev/null bs=2048k
> 10+0 records in
> 10+0 records out
> 20971520 bytes transferred in 7.678915 secs (2731052 bytes/sec)

ZFS in RAIDZ does simultaneous I/O to all disks, that is probably the 
most complicated case. Though I can hardly believe it can be that slow. 
Even without any FBS support in HBA I would expected at least 100MB/s / 
5 = 20MB/s, but definitely not 350KB/s.

> # for i in `jot 5 1`; do dd if=/dev/ada$i of=/dev/null count=200
> bs=2048k;done
> 200+0 records in
> 200+0 records out
> 419430400 bytes transferred in 3.211699 secs (130594554 bytes/sec)
> 200+0 records in
> 200+0 records out
> 419430400 bytes transferred in 3.034111 secs (138238327 bytes/sec)
> 200+0 records in
> 200+0 records out
> 419430400 bytes transferred in 3.639701 secs (115237601 bytes/sec)
> 200+0 records in
> 200+0 records out
> 419430400 bytes transferred in 2.841386 secs (147614716 bytes/sec)
> 200+0 records in
> 200+0 records out
> 419430400 bytes transferred in 3.020611 secs (138856154 bytes/sec)
> #
>
> # for i in `jot 5 1`; do dd if=/dev/zero  of=/dev/ada$i  count=200
> bs=2048k;done
> 200+0 records in
> 200+0 records out
> 419430400 bytes transferred in 3.285333 secs (127667539 bytes/sec)
> 200+0 records in
> 200+0 records out
> 419430400 bytes transferred in 3.043410 secs (137815945 bytes/sec)
> 200+0 records in
> 200+0 records out
> 419430400 bytes transferred in 3.611478 secs (116138154 bytes/sec)
> 200+0 records in
> 200+0 records out
> 419430400 bytes transferred in 2.830386 secs (148188414 bytes/sec)
> 200+0 records in
> 200+0 records out
> 419430400 bytes transferred in 2.987366 secs (140401412 bytes/sec)
> #
>
> Any ideas on how to fix this controller to make it work better with ZFS
> and get better speeds ?

Good question. One of several about these Marvell controllers, caused by 
lack of any public documentation. :(

-- 
Alexander Motin
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hardware
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.