Carlos Cumming wrote:

>I'm writing a driver for a RAID controller that has a limited queue 
>depth. Note it's the controller that has limited queue depth, not the 
>target (like SCSI expects). I only know how to limit the queue depth per 
>I_T nexus, not per controller like I need.
>
>Is there a way to do this that I'm missing?
>
>Thanx, Carlos.
>
>_______________________________________________
>driver-discuss mailing list
>[email protected]
>http://mail.opensolaris.org/mailman/listinfo/driver-discuss
>  
>
Most of HBA controllers regardless RAID or non-RAID have limited queue 
depth.
The depth means HBA's capability of dealing with outstanding commands 
concurrently.
So the correct method in HBA driver should be:

each time transport, request allocation of a slot of the queue in 
*tran_start()
If success, transport the command by use of the slot.
If failed, return TRAN_BUSY to ask target driver retry later, or 
implement a waiting queue in HBA driver
put the command enter into waiting queue until there is spared/released 
slot.

Thanks
Javen
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to