Subject: Re: Revamping the MI SCSI layer
To: Charles M. Hannum <mycroft@MIT.EDU>
From: Noriyuki Soda <soda@sra.co.jp>
List: port-i386
Date: 08/29/1996 16:46:34
>>>>> On 28 Aug 1996 16:06:07 -0400,
	mycroft@mit.edu (Charles M. Hannum) said:

>> >2) Why isn't the scsi_queue allocated by the bus, rather than by the
>> >controller (i.e. by scsi_alloc_bus(), in your configuration `model')?
>> >(Presumably the function pointers would be passed down in the *_switch
>> >structure.)
>> 
>> Because some controllers share a queue across mutliple busses.  The 2742T
>> is one of these.

> Uh, so?  In my little world, *all* of this knowledge would be in the
> controller driver.  I'd say `Please make sure you have resources for N
> requests available.', and the driver would tell me `Okay; I have
> resources for M requests.  Shoot.'

I think that Justin's approach (i.e. controller level queue) is better 
in this point.

Please think about well-known ahc driver's problem.
If SCB shortage occurs in SCSI_NOSLEEP condition, scsi transaction
should be queued for later processing (currently this is not done,
because TRY_AGAIN_LATER handling is broken as you know).  If you
choose scsi bus level queue for this, fairness of transaction will NOT
be guaranteed, and the another buses on the ahc controller will become
starvation.  Please remember ahc controler has multiple scsibuses, and
SCB is not bus level resource, but controller level resource.
--
soda@sra.co.jp		Software Research Associates, Inc., Japan
(Noriyuki Soda)		   software tools and technology group