]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
In some cases failed SATA disks may report their presence, but don't
authormav <mav@FreeBSD.org>
Fri, 29 Jul 2011 20:30:28 +0000 (20:30 +0000)
committermav <mav@FreeBSD.org>
Fri, 29 Jul 2011 20:30:28 +0000 (20:30 +0000)
commit56747017c93fe2b157d540210ca731a4901ae11b
tree4669b162bed7e4820e270e521d620684df9b61c5
parent3b6f1df0b0ea32496af31645202e47a2cde44943
In some cases failed SATA disks may report their presence, but don't
respond to any commands. I've found that because of multiple command
retries, each of which cause 30s timeout, bus reset and another retry or
requeue for many commands, it may take ages to eventually drop the
failed device. The odd thing is that those retries continue even after
XPT considered device as dead and invalidated it.

This patch makes cam_periph_error() to block any command retries after
periph was marked as invalid. With that patch all activity completes in
1-2 minutes, just after several timeouts, required to consider device
death. This should make ZFS, gmirror, graid, etc. operation more robust.

Reviewed by: mjacob@ on scsi@

Approved by: re (kib)
sys/cam/cam_periph.c