Recently the latest Linux kernel has been released to LINUX-3.19-RC6, according to Linus's release note, about once again after a RC7 version can be formally released. The biggest change to the Linux 3.19 kernel at the block level is the addition of a multi-queue block layer to better support devices like NVMe that support the multi-queue mechanism. The so-called multi-queue mechanism is that in the case of multicore CPUs, different block layer submission queues are assigned to different CPU cores to better balance IO workloads and greatly improve IO efficiency of storage devices such as SSDs.
In fact, in the Linux-3.13 kernel has appeared in the Multi-queue device support, but at that time is not a special Multi-queue block layer, but used alone in the NVME device driver. After the 3.19 kernel, the Multi-queue block layer will take over the work of multi-queque uniformly. The driver of the NVME device also took off this part of the function, in turn, by calling the function of Multi-queue block layer to implement the multi-queue mechanism. Support for SCSI-MQ after the 3.19 kernel will be a cinch.
The BLK-MQ's IO submission mechanism is signalled.
Very good test and research shows that BLK-MQ/SCSI-MQ to the storage device performance will be a great upgrade, want to learn more BLK-MQ/SCSI-MQ see this article, show added blk-mq/ SCSI-MQ after LINUX-SCSI performance
The specific Linux-3.19 block driver updates can be found in this link
New changes in Linux3.19 kernel block layer, adding multi-queue block layers