1

I have a question regarding multi-queue (MQ) in SCSI layer and consequently iSCSI. Apparently there is good technical and scientific literature explaining multi-queue (MQ) on block layer level. But there is rarely any good explanation that how this multi-queue (MQ) is triggered down to SCSI layer and then iSCSI. AFAIK, since Linux kernel 3.13 (2014), the linux block layer has multi-queue a.k.a mq-blk. After mq-blk in block layer, the SCSI IO submission path had to be updated. As a result, SCSI multi-queue a.k.a scsi-mq work has been functional since Linux kernel 3.17. Therefore, I have following questions:

Question 1: How actually multi-queuing is achieved in SCSI layer?

Question 2: Traditionally, the SCSI mid-level layer used to create queuecommand (). Now when there is multi-queuing implemented in SCSI, does multi-queuing actually means creating more than one queuecommand ()?

Question 3: Where exactly one can see multi-queue in SCSI code base?

Question 4: Once we have multi-queue in SCSI, how is this implemented in iSCSI level?

Please help me understand it.

BZKN
  • 1,499
  • 2
  • 10
  • 25

0 Answers0