On 07/12/13 02:23, Nicholas A. Bellinger wrote: > [ ... ] I would like to discuss scsi-mq, a high performance SCSI > initiator prototype that utilizes blk-mq [ ... ] (replying to an e-mail of four months ago) It took a while but I finally found some time to look further into blk-mq and scsi-mq. Did I see correctly that the scsi-mq prototype implements the so-called hw queues in the SCSI core and not in the SCSI LLDs ? Sorry but that approach looks wrong to me. Several high-end storage adapters already support multiple queues today. E.g. the NVMe specification supports up to 64.000 I/O queues. With InfiniBand HCA's it is possible to create multiple queues between initiator and target for e.g. the iSER and SRP protocols to increase throughput. When there are multiple queues between initiator and target there is a potential that SCSI commands get reordered. The SCSI specifications define whether or not it is allowed to change the submission order of commands. As an example, if two atomic writes are submitted by the same CPU neither the block layer nor the SCSI core nor the SCSI LLD nor the SCSI target is allowed to reorder these. With the scsi-mq prototype present in your repo the only way for a SCSI LLD to guarantee that SCSI commands for which the submission order must be preserved do not get reordered is either to limit the queue depth to one or to use a single queue for communication with the target. I don't think this is what we want. In other words, the so-called hw queue concept must be mapped onto queues managed by the SCSI LLD and not onto queues managed by the SCSI core. That will allow the block layer and the SCSI core to preserve SCSI command submission order when necessary by queueing ordered commands on the same hardware queue. See also https://git.kernel.org/cgit/linux/kernel/git/nab/target-pending.git/log/?h=scsi-mq. Bart. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html