CAM/SIIS CAM_CMD_TIMEOUT hangs

View: New views
2 Messages — Rating Filter:   Alert me  

CAM/SIIS CAM_CMD_TIMEOUT hangs

by James R. Van Artsdalen-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I have problems with I/O hanging due to CAM/SIIS not handling the
CAM_CMD_TIMEOUT error.
Hangs happen every few hundred GB to every few TB.
The disks are behind SATA port multipliers.

This command un-hangs the drive and lets things run again:

# camcontrol reset all

I assume this is sending a soft reset to the disk drive but haven't
checked yet.

Is there a way xpt_done() or such might notice a CAM_CMD_TIMEOUT and
inject a "soft reset" request at the head of the I/O queue (to run
before the timed-out command retries)?
_______________________________________________
freebsd-current@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@..."

Re: CAM/SIIS CAM_CMD_TIMEOUT hangs

by Alexander Motin-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

James R. Van Artsdalen wrote:

> I have problems with I/O hanging due to CAM/SIIS not handling the
> CAM_CMD_TIMEOUT error.
> Hangs happen every few hundred GB to every few TB.
> The disks are behind SATA port multipliers.
>
> This command un-hangs the drive and lets things run again:
>
> # camcontrol reset all
>
> I assume this is sending a soft reset to the disk drive but haven't
> checked yet.
>
> Is there a way xpt_done() or such might notice a CAM_CMD_TIMEOUT and
> inject a "soft reset" request at the head of the I/O queue (to run
> before the timed-out command retries)?

Try my latest patch against HEAD:
http://people.freebsd.org/~mav/cam-ata.20091028.patch

It does hard reset after timeout, and what is important, it
reinitializes PMP after reset, to re-enable it's ports back.

--
Alexander Motin
_______________________________________________
freebsd-current@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@..."