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
