On Tue, 2007-01-09 at 16:32 -0500, Edward Goggin wrote: > The attached (untested) patch shows a VMware and scsi transport agnostic > approach which introduces a new host status (DID_QUALIFIED_REQUEUE) to > be used by mptscsih.c (and other LLDs) instead of DID_BUS_BUSY. A host > status of DID_QUALIFIED_REQUEUE will return ADD_TO_MLQUEUE from > scsi_decide_disposition IFF the REQ_FAILFAST bit is not set in the > cmd_flags field of the SCSI command's request structure. > > The approach depends on both VMware Linux guests not setting > REQ_FAILFAST and non-VMware Linux hosts with an IBM RDAC/MPP multi- > pathing driver doing so. This requirement is not a problem for VMware > since its guest operating systems have no need to configure block device > multi-pathing. This requirement shouldn't be a problem for the IBM > RDAC/MPP driver either since it should already be setting the > REQ_FAILFAST attribute of I/Os for which it is providing multi-pathing, > similar to what the Linux dm-multipath driver already does. Not in the driver, please ... the SAM status BUSY is a well known one for array controllers to return while contemplating a failover. Thus, if we think this is the issue, the mid-layer should be the entity to pass the status through on REQ_FAILFAST not the driver (i.e. pass SAM_STAT_BUSY through unmodified and alter the mid-layer). However, I'd be unhappy about doing this: BUSY is a standard return for a lot of controllers for transient resource conditions, which wouldn't necessarily be alleviated on path failover. James - To unsubscribe from this list: 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