Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 May 2013 19:33:06 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        Mike Tancsa <mike@sentex.net>
Cc:        "freebsd-hardware@freebsd.org" <freebsd-hardware@freebsd.org>
Subject:   Re: Rocket Raid 622 in AHCI mode
Message-ID:  <51A4DC42.30705@FreeBSD.org>
In-Reply-To: <51A4B34F.7000505@sentex.net>
References:  <51A4B34F.7000505@sentex.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51A4DC42.30705>