blk-mq: new multi-queue block IO queueing mechanism

Linux currently has two models for block devices:

  • The classic request_fn based approach, where drivers use struct request units for IO. The block layer provides various helper functionalities to let drivers share code, things like tag management, timeout handling, queueing, etc.

  • The "stacked …

more ...

Block layer introduction part 2: the request layer

By Neil Brown  November 9, 2017, lwn.net

The Linux block layer provides an upstream interface to filesystems and block-special devices allowing them to access a multitude of storage backends in a uniform …

more ...

single queue VS multiqueue


The multiqueue block layer

Jonathan Corbet  June 5, 2013, lwn.net

The kernel's block layer is charged with managing I/O to the system's block ("disk drive") devices. It was designed in an era when a high-performance drive …

more ...