freebsd-dev/sys/dev/isci
Jim Harris dd92530581 Wait until completion context unwinds before retrying CCBs that have been
queued internally.  This works around issue in the isci HAL where it cannot
accept new I/O to a device after a resetting->ready state transition until
the completion context has unwound.

This issue was found by submitting non-tagged CCBs through pass(4) interface
to a SATA disk with an extremely small timeout value (5ms).  This would trigger
internal resets with I/O in the isci(4) internal queues.

The small timeout value had not been intentional (and original reporter has
since changed his test to use 5sec instead), but it did uncover this corner
case that would result in a hung disk.

Sponsored by: Intel
Reported and tested by: Ravi Pokala <rpokala at panasas dot com>
Reviewed by: scottl (earlier version)
MFC after: 1 week
2012-05-21 22:54:33 +00:00
..
scil Fix off-by-one error in sati_inquiry_block_device_translate_data(). Bug would 2012-05-04 23:45:34 +00:00
environment.h
isci_controller.c Wait until completion context unwinds before retrying CCBs that have been 2012-05-21 22:54:33 +00:00
isci_domain.c Ensure consistent target IDs for direct-attached devices. 2012-03-28 18:38:13 +00:00
isci_interrupt.c Wait until completion context unwinds before retrying CCBs that have been 2012-05-21 22:54:33 +00:00
isci_io_request.c Wait until completion context unwinds before retrying CCBs that have been 2012-05-21 22:54:33 +00:00
isci_logger.c
isci_oem_parameters.c
isci_remote_device.c Wait until completion context unwinds before retrying CCBs that have been 2012-05-21 22:54:33 +00:00
isci_sysctl.c
isci_task_request.c Fix the following compilation warning with clang trunk in isci(4): 2012-03-30 22:52:08 +00:00
isci_timer.c
isci.c Update PCI-IDs with devices found on Intel SDP 2012-02-27 17:04:18 +00:00
isci.h Wait until completion context unwinds before retrying CCBs that have been 2012-05-21 22:54:33 +00:00
README
sci_environment.h
types.h

FreeBSD Driver for Intel(R) C600 SAS Controller
===============================================

This driver has been developed for use with FreeBSD, version 9.0 and later.

This driver uses an OS-agnostic abstraction layer library named SCIL that is
published by Intel specifically for the C600 SAS controller.  The SAS
controller has no firmware, so the driver is extensive and using SCIL
minimizes the development and maintenance cost of the driver.

The FreeBSD implementation files are in the isci directory, and SCIL files
are in the isci/scil subdirectory.  As Intel publishes new versions of SCIL
(to add features or fix bugs), the isci/scil subdirectory will be updated
appropriately.