hysteresis for CAM_RESRC_UNAVAIL

Ade Lovett ade at freebsd.org
Tue Sep 26 20:02:00 PDT 2006


On Sep 26, 2006, at 19:46 , mjacob at freebsd.org wrote:
> The trouble here is that there is nothing in the SCSI spec to tell  
> you *when* a device that reported a BUSY will no longer be busy.

Well, I guess that puts a fundamental damper on async notifications  
then ;)

> Umm- but then this has to be documented, and so on and so forth. I  
> mean, you might have to tune such a value, but it strikes me that  
> under the current circumstances that because nobody has *really*  
> complained about this situation for > 5 years that nobody will  
> really *need* to tune it, so maybe we need not do it at all :-).

I was thinking more in terms of initial experimentation.  Consider it  
a "hidden" sysctl.  One with a likely very short lifespan.  Rather  
than hardcoding a number, add in the minimal extra code to allow it  
to be tunable.  We have a relatively large number of tunables that  
simply aren't tuned in a "standard" setup.  I'm thinking of it more  
in terms of allowing for a little bit of flexibility - I have this  
(irrational?) hatred of hard-coded numbers.

> Maybe this should be pushed off to each SIM driver then. That is,  
> let each SIM (or otherwise setter of BUSY or CAM_RESRC_UNAVAIL  
> status) just freeze the device queue or simq as appropriate and  
> then unfreeze it later.

Oof.  At the very least, we'd be looking at a reasonably large chunk  
of duplicated code in this instance, no?

The concept of backing off a little on a BUSY/UNAVAIL definitely has  
merit, as opposed to the "bugger it, we'll just keep trying harder  
and FASTER, dammit" approach we have now.  And I'm more than happy to  
secede to those who have forgotten more scsi-fu than I will ever  
learn, I just hate magic numbers, that's all :)

-aDe



More information about the freebsd-scsi mailing list