当执行I/O请求时很多事情可能出错。可以在CCB状态中非常详尽地 报告错误原因。使用的例子散布于本文档中。为了完整起见此处给出 对典型错误条件的建议响应的一个总览:
CAM_RESRC_UNAVAIL - 某些资源 暂时不可用,并且当其变为可用时SIM驱动程序不能产生事件。这种资源 的一个例子就是某些控制器内部硬件资源,当其可用时控制器不会为其 产生中断。
CAM_UNCOR_PARITY - 发生不可恢复的奇偶校验错误
CAM_DATA_RUN_ERR - 数据外溢或未预期的数据状态(phase)(跑在另一个方向上而不是 CAM_DIR_MASK指定的方向),或对于宽传输出现奇数传输长度
CAM_SEL_TIMEOUT - 发生选择超时(目标不响应)
CAM_CMD_TIMEOUT - 发生命令超时(超时函数运行)
CAM_SCSI_STATUS_ERROR - 设备返回的错误
CAM_AUTOSENSE_FAIL - 设备返回的错误且REQUEST SENSE命令失败
CAM_MSG_REJECT_REC - 收到MESSAGE REJECT消息
CAM_SCSI_BUS_RESET - 收到SCSI总线复位
CAM_REQ_CMP_ERR - 出现“不可能(impossible)”SCSI状态(phase) 或者其他怪异事情,或者如果进一步的信息不可用则只是通用错误
CAM_UNEXP_BUSFREE - 出现未预期的断开连接
CAM_BDR_SENT - BUS DEVICE RESET消息被发送到目标
CAM_UNREC_HBA_ERROR - 不可恢复的主机总线适配器错误
CAM_REQ_TOO_BIG - 请求对于控制器太大
CAM_REQUEUE_REQ - 此请求应当被重新入队以保持事务的次序性。这典型地出现在下列 时刻:SIM识别出了应当冻结队列的错误,并且必须在sim级别上将目标的 其他入队请求放回到XPT队列。这些错误的典型情况有选择超时、命令 超时和其他类似情况。这些情况下出问题的命令返回状态来指示错误, 此命令和其他还没有被发送到总线的命令被重新入队。
CAM_LUN_INVALID - SCSI控制器不支持请求中的LUN ID
CAM_TID_INVALID - SCSI控制器不支持请求中的目标ID
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.