Understanding the Execution of Initiator I/O Requests

During normal processing, many transactions are queued in the SCSI device driver.

As the SCSI device driver processes these transactions and passes them to the SCSI adapter device driver, the SCSI device driver moves them to the in-process queue. When the SCSI adapter device driver returns through the iodone service with one of these transactions, the SCSI device driver either recovers any errors on the transaction or returns using the iodone kernel service to the calling level.

The SCSI device driver can send only one sc_buf structure per call to the SCSI adapter device driver. Thus, the sc_buf.bufstruct.av_forw pointer should be null when given to the SCSI adapter device driver, which indicates that this is the only request. The SCSI device driver can queue multiple sc_buf requests by making multiple calls to the SCSI adapter device driver strategy routine.