On 03.09.2005 14:56 Arjan van de Ven <arjan@xxxxxxxxxxxxx> 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 - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html