LSI 6Gb SAS driver committed
Kenneth D. Merry
ken at freebsd.org
Fri Sep 10 15:28:15 UTC 2010
Hey folks,
I have commited the mps driver (LSI Logic 6Gb SAS controller driver) to the
FreeBSD perforce server (//depot/projects/mps/... and FreeBSD-current.
The driver works with SAS and SATA drives, directly attached or attached
through expanders. Basic error recovery works as well (i.e. timeouts and
aborts).
There are some known issues, including:
- No support for integrated RAID (IR) arrays.
- Devices tend to disappear and come back in one of my configurations. I
also see some phantom devices, and events that don't make sense:
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
(da2:mps0:0:6:0): SCSI command timeout on device handle 0x0017 SMID 90
mps0: mpssas_abort_complete: abort request on handle 0x17 SMID 90 complete
mps0: Unhandled event 0x0
(probe2:mps0:0:2:0): AutoSense failed
mps0: Unhandled event 0x0
(da10:mps0:0:0:0): unsupportable block size 0
(da10:mps0:0:0:0): lost device
(da10:mps0:0:0:0): removing device entry
(da2:mps0:0:6:0): lost device
(da2:mps0:0:6:0): removing device entry
da2 at mps0 bus 0 scbus0 target 6 lun 0
da2: <ATA ST3160023AS 3.05> Fixed Direct Access SCSI-5 device
da2: 150.000MB/s transfers
da2: Command Queueing enabled
da2: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
mps0: Unhandled event 0x0
- Sometimes you'll run into a device that fails part of the probe on boot,
and you'll end up running into the run_interrupt_driven_config_hooks
timeout. You see some aborts during probe, and then the 5 minute probe
timeout kicks in and panics the kernel. For instance:
(probe4:mps0:0:20:0): SCSI command timeout on device handle 0x0012 SMID 81
mps0: mpssas_abort_complete: abort request on handle 0x12 SMID 81 complete
run_interrupt_driven_hooks: still waiting after 60 seconds for xpt_config
(probe4:mps0:0:20:0): SCSI command timeout on device handle 0x0012 SMID 214
mps0: mpssas_abort_complete: abort request on handle 0x12 SMID 214 complete
run_interrupt_driven_hooks: still waiting after 120 seconds for xpt_config
run_interrupt_driven_hooks: still waiting after 180 seconds for xpt_config
(probe4:mps0:0:20:0): SCSI command timeout on device handle 0x0012 SMID 281
mps0: mpssas_abort_complete: abort request on handle 0x12 SMID 281 complete
run_interrupt_driven_hooks: still waiting after 240 seconds for xpt_config
(probe4:mps0:0:20:0): SCSI command timeout on device handle 0x0012 SMID 348
mps0: mpssas_abort_complete: abort request on handle 0x12 SMID 348 complete
run_interrupt_driven_hooks: still waiting after 300 seconds for xpt_config
(probe4:mps0:0:20:0): SCSI command timeout on device handle 0x0012 SMID 415
mps0: mpssas_abort_complete: abort request on handle 0x12 SMID 415 complete
panic: run_interrupt_driven_config_hooks: waited too long
cpuid = 0
KDB: enter: panic
[ thread pid 0 tid 100000 ]
Stopped at kdb_enter+0x3d: movq $0,0x4c70b0(%rip)
db>
- ioctl support isn't complete, and there is no userland utility.
- There is no man page.
The driver is in the tree at this point to allow people to test it out,
report any problems, and hopefully contribute bug fixes.
LSI has some developers working on this driver, and we hope to get them to
put some of their work-in-progress in the FreeBSD Perforce repo. So, in
view of that, if you make any changes to the driver, please make them in
the FreeBSD Perforce repository first (in //depot/projects/mps/...) and
then merge them into FreeBSD-current.
Thanks to Scott Long for writing the driver, and to Yahoo and Spectra Logic
for sponsoring the work.
Ken
--
Kenneth Merry
ken at FreeBSD.ORG
More information about the freebsd-scsi
mailing list