Understanding I/O Handling and Scheduling in the Block Layer
Chapter 4 and Chapter 5 of this book focused on the role of the block layer in the kernel. We were able to see what constitutes a block device, the major data structures in the block layer, the multi-queue block I/O framework, and the device mapper. This chapter will focus on another important function of the block layer – scheduling.
Scheduling is an extremely critical component of any system, as the decisions taken by a scheduler can have a major say in dictating the overall system performance. The I/O scheduling in the block layer is no exception to this rule. The I/O scheduler holds significant importance in deciding the manner and timing of delivery for an I/O request to the lower layers. Given this, it becomes crucial to carefully analyze the I/O patterns of an application...