Re: Aic7x_x_x 6.3.4 && Aic79xx 2.0.5 Updates

Alan Cox
2003-12-27T15:21:34Z

On Gwe, 2003-12-26 at 18:36, James Bottomley wrote:
> >From a technical perspective, the way you try to thwart mid-layer error
> recovery: intercept all the SCSI timers and substitute your own, is
> extremely ugly (and leads to quite a bit of code duplication) but it's
> surely going to cause a conflict with the evolving stackable error
> handling.

Or install your own EH handler. You don't have to use the kernel eh at
all, you can just opt out of it and for some cards like smart raid
devices its precisely the right thing to do. I can believe the argument
that for fast failover you want to do EH differently, and nothing in the
architecture seems to make that hard providing a driver is willing to
opt cleanly out of the scsi_eh handler.

Similarly it would be nice to be able to revector the actual scsi eh
timeouts via an optional handler. Something of the form

int myscsi_timeout_handler(Scsi_Cmd *cmd, int reason, void *.. whatever)
{
...

if(reason == SCSI_TIMEOUT && host->bus_state == FIBRE_DOWN &&
priv->retry_count < 5)
return SCSI_RETRY(60);
return SCSI_DEFAULT;
}