On 03.09.2005 14:56 Arjan van de Ven <[EMAIL PROTECTED]> wrote:
> > zfcp: introduce eh_timed_out handler
> >
> > This handler is required to avoid offlined SCSI devices in a
multipath
> > setup if scsi commands time out on cable pulls lasting longer than
30
> > seconds.
> hmm why is this needed? doesn't the fc transport class do this for you
> already? If not.. I think it should since it's not unique to your FC
> driver but common to all..
Sorry, I am not sure whether fc transport does this already. Problem
may be that zfcp does not fully support the fc transport class at the
moment ... ;-(
Problem was that although multipath was used during error injection
tests (long cable pulls) SCSI devices were offlined. This was due to
error escalation in scsi_error.c (see function scsi_eh_ready_devs)
when commands timed out.
By providing an eh_timed_out handler the timed out requests are
returned as fast as possible to the upper layers. zfcp returns
EH_HANDLED for timed-out commands and scsi_times_out calls scsi_done:
if (scmd->device->host->hostt->eh_timed_out)
switch (scmd->device->host->hostt->eh_timed_out(scmd)) {
case EH_HANDLED:
__scsi_done(scmd);
return;
Then dm-multipath has to decide what to do with the request.
With this patch and a proper multipath configuration
(e.g. queue_if_no_path option) Linux survived hard stress tests
with different kind of error injects (fimware updates, cable pulls
etc.) without I/O errors at user level.
In any case this patch will complete zfcp's set of eh_handlers.
Regards,
Andreas
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html