LSI - MR-Fusion controller driver <mrsas> patch and man page
Borja Marcos
borjam at sarenet.es
Thu Mar 27 14:29:00 UTC 2014
On Mar 24, 2014, at 6:45 PM, Doug Ambrisko wrote:
> Nothing is planned to be removed from mfi. However, LSI would like mrsas
> to be used on newer cards. We've let people LSI know that people use
> the pass through mode and having the logical volumes come up as /dev/daX
> and pass through would be confusing. Granted mrsas doesn't support pass
> through so that isn't a problem.
I've just tried a Joe job with the mrsas driver, installing it on FreeBSD 10-STABLE.
NO CORRUPTION (and the disks are indeed assigned to the "da" driver, with trim and quirks working).
I have just had a problem (reading a disk's attributes with smartctl caused a disconnect and I had to
do a camcontrol rescan to see the disk again) but it can be due to the ugly kludge I've done to
be able to compile mrsas in 10-STABLE.
(Don't try this at home, kids, it was just a zero-effort shot which, surprisingly, has yielded good results ;) )
I've downloaded the latest driver, 6.602.01.00_MR_Free-BSD_Driver.tgz from the LSI website. I noticed the
release notes mention a bug that causes data corruption with syspd disks (bingo!).
So I installed it (copied the mrsas directories to /usr/src/sys/dev and /usr/src/sys/modules), updated the files list,
and compiled a kernel without the mfi driver.
In order to compile I had to edit mrsas_cam.c, seems that the flags have changed in recent versions.
% diff mrsas_cam.c*
419,420c419,420
< if (!(ccb_h->flags & CAM_DATA_PADDR)) { //Virtual data address BORJA
< if (!(ccb_h->flags & CAM_DATA_SG)) { // Borja asumi SCATTER_VALID es DATA_SG
---
> if (!(ccb_h->flags & CAM_DATA_PHYS)) { //Virtual data address
> if (!(ccb_h->flags & CAM_SCATTER_VALID)) {
I am pretty sure my flag substitutions are wrong, but all I wanted to do was a really quick test. The test has been successful and
at least in a couple of hours I haven't seen any data corruption at all. Just that dropping issue when using smartctl to read the SMART
data, but I wonder if it's caused by my obviously wrong kludge.
I still notice that, for some reason, the devices are still negotiating a low speed. It must be true, because the SSDs peak at around 200 MB/s with the Invader, reaching 400 MB/s with a flashed LSI2008 card (latest IT mode firmware).
# camcontrol inq ses0
pass2: <IBM-ESXS SAS EXP BP 61A6> Fixed Enclosure Services SCSI-4 device
pass2: 150.000MB/s transfers, Command Queueing Enabled
# camcontrol inq da14
pass16: <ATA Samsung SSD 840 BB0Q> Fixed Direct Access SCSI-6 device
pass16: Serial Number S1D9NEADA08911Y
pass16: 150.000MB/s transfers, Command Queueing Enabled
I must also say, regarding my comments to LSI, that maybe I was wrong with some of them. I see that with the disks configured as SYSPD on
the Invader card they appear as "da" (alright, that I knew) *and* I can see the additional features such as TRIM (which works) and of course
disk quirks. Anyway of course I will insist that so-called syspd drives should have a guarantee of maximum transparency.
Mar 27 13:49:40 piruli kernel: da16 at mrsas0 bus 1 scbus2 target 23 lun 0
Mar 27 13:49:40 piruli kernel: da16: <ATA OCZ-VERTEX4 1.5> Fixed Direct Access SCSI-6 device
Mar 27 13:49:40 piruli kernel: da16: Serial Number OCZ-SKC094QRU20F444P
Mar 27 13:49:40 piruli kernel: da16: 150.000MB/s transfers
Mar 27 13:49:40 piruli kernel: da16: 488386MB (1000215216 512 byte sectors: 255H 63S/T 62260C)
Mar 27 13:49:40 piruli kernel: da16: quirks=0x8<4K>
# camcontrol inq da16
pass18: <ATA OCZ-VERTEX4 1.5> Fixed Direct Access SCSI-6 device
pass18: Serial Number OCZ-SKC094QRU20F444P
pass18: 150.000MB/s transfers, Command Queueing Enabled
Still the negotiation seems to be failing, but I wonder if it's more of a firmware problem with the controller, expander or both.
Cheers,
Borja.
More information about the freebsd-scsi
mailing list