From be750347503fa460c4af938f5615d973abc8b7bc Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Fri, 29 Dec 2023 12:05:36 +0100 Subject: [PATCH] LVM: Update paragraph on multi-queue schedulers. The single queue schedulers are history, so replace the text which said that they are about to be replaced. --- LVM.m4 | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/LVM.m4 b/LVM.m4 index abd8243..959d4ce 100644 --- a/LVM.m4 +++ b/LVM.m4 @@ -60,21 +60,18 @@ they can be submitted as a unit for performance reasons. The thusly processed bios then form an I/O request which is handed to an I/O scheduler (also known as elevator).

-

At this time of writing (2018-11) there exist two different sets -of schedulers: the traditional single-queue schedulers and the -modern multi-queue schedulers, which are expected to replace the -single-queue schedulers soon. The three single-queue schedulers, -noop, deadline and cfq (complete fair queueing), were designed for -rotating disks. They reorder requests with the aim to minimize seek -time. The newer multi-queue schedulers, mq-deadline, kyber, and bfq -(budget fair queueing), aim to max out even the fastest devices. As -implied by the name "multi-queue", they implement several request -queues, the number of which depends on the hardware in use. This -has become necessary because modern storage hardware allows multiple -requests to be submitted in parallel from different CPUs. Moreover, -with many CPUs the locking overhead required to put a request into -a queue increases. Per-CPU queues allow for per-CPU locks, which -decreases queue lock contention.

+

Traditionally, the schedulers were designed for rotating disks. +They implemented a single request queue and reordered the queued +I/O requests with the aim to minimize disk seek times. The newer +multi-queue schedulers mq-deadline, kyber, and bfq (budget fair +queueing) aim to max out even the fastest devices. As implied by +the name "multi-queue", they implement several request queues, +the number of which depends on the hardware in use. This has become +necessary because modern storage hardware allows multiple requests +to be submitted in parallel from different CPUs. Moreover, with many +CPUs the locking overhead required to put a request into a queue +increases. Per-CPU queues allow for per-CPU locks, which decreases +queue lock contention.

We will take a look at some aspects of the Linux block layer and on the various I/O schedulers. An exercise on loop devices enables the -- 2.39.2