Linux Kernel Command Line – “elevator=” is deprecated – I/O performance tuning

Recently, various news items have indicated that, the Linux Kernel version currently used by Leap 15.2 has the ability to automatically setup the I/O scheduling for each device on a per-device basis.

Additionally, Red Hat has mentioned that, with RHEL 8, the “elevator” kernel command line parameter is deprecated – <> …

OK – a test – remove “elevator=«WhatEver»” from the Kernel’s Command Line in GRUB and reboot …

 # cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.3.18-lp152.57-default root=UUID=c59a64bf-b464-4ea2-bf3a-d3fd9dded03f splash=silent resume=/dev/disk/by-id/ata-Intenso_SSD_Sata_III_AA000000000000035990-part3 quiet mitigations=auto
 # inxi --disk-full
Drives:    Local Storage: total: 5.17 TiB used: 295.32 GiB (5.6%) 
           ID-1: /dev/sda vendor: Intenso model: SSD Sata III size: 111.79 GiB 
           ID-2: /dev/sdb vendor: Western Digital model: WD10EZEX-60M2NA0 size: 931.51 GiB 
           ID-3: /dev/sdc vendor: Western Digital model: WD40EZRZ-22GXCB0 size: 3.64 TiB 
           ID-4: /dev/sdd vendor: Seagate model: ST3500418AS size: 465.76 GiB 
           ID-5: /dev/sdg type: USB vendor: Generic model: USB3.0 CRW-SD size: 3.69 GiB 
           ID-6: /dev/sdj type: USB vendor: OCZ model: VERTEX2 size: 55.90 GiB 
           Optical-1: /dev/sr0 vendor: ASUS model: DRW-24D5MT dev-links: cdrom,cdrw,dvd,dvdrw 
           Features: speed: 12 multisession: yes audio: yes dvd: yes rw: cd-r,cd-rw,dvd-r,dvd-ram 
           Optical-2: /dev/sr1 vendor: TSSTcorp model: CDDVDW SH-224DB dev-links: N/A 
           Features: speed: 48 multisession: yes audio: yes dvd: yes rw: cd-r,cd-rw,dvd-r,dvd-ram 
 # cat /sys/block/sda/queue/scheduler 
[mq-deadline] kyber bfq none
 # cat /sys/block/sdb/queue/scheduler 
mq-deadline kyber [bfq] none
 # cat /sys/block/sdc/queue/scheduler 
mq-deadline kyber [bfq] none
 # cat /sys/block/sdd/queue/scheduler 
mq-deadline kyber [bfq] none
 # cat /sys/block/sdg/queue/scheduler
mq-deadline kyber [bfq] none
 # cat /sys/block/sdj/queue/scheduler
mq-deadline kyber [bfq] none
 # cat /sys/block/sr0/queue/scheduler
mq-deadline kyber [bfq] none
 # cat /sys/block/sr1/queue/scheduler
mq-deadline kyber [bfq] none

The Kernel has allocated a “(mq) Deadline” I/O scheduler to the SSD system disk – the rest have been allocated a “Budget Fair Queueing” I/O scheduler …
[HR][/HR]Do we need some Change Requests to the following Leap 15.2 documentation?

  1. Release Notes.
  2. Tuning Guide.

In addition, does YaST need a small change to the “Kernel Settings” – “Global I/O Scheduler” section?

  • Is “Not Configured
    ” actually “Automatically decided by the Kernel”?

Been like that for a long long time…(switched over at least a couple of releases ago)? For nvme devices is none now…

Confirming that we saw that in Leap 15.0, see
The current version of the tuning guide seems correct to me…

Here’s a useful command for listing out things like schedulers in /sys. The “find -H /sys/blk/*” form allows the shell to expand the initial level of symbolic links without the problems associated with using “find -L” option in /sys.

> find -H /sys/block/* -iname scheduler -print0 -printf ': ' -exec cat '{}' \;
/sys/block/nvme0n1/queue/scheduler: [none] mq-deadline kyber bfq 
/sys/block/pktcdvd0/queue/scheduler: none
/sys/block/sda/queue/scheduler: [mq-deadline] kyber bfq none
/sys/block/sr0/queue/scheduler: mq-deadline kyber [bfq] none


What’s with the YaST Change Request?

Yes, but, it doesn’t explicitly mention that –

  • “elevator=” in the Kernel Command Line is deprecated …
  • The Linux Kernel automagically determines which I/O Scheduler shall be used on a per-device basis and, that choice can be overridden by overwriting the ‘/sys/block/DEVICE/queue/scheduler’ value …

You might have better chances submitting requests against 15.3 still in Alpha phase, 15.2 will be EOL before somebody looks at documentation requests (if ever…)

You may well be correct – I wanted to take a look at the 15.3 Leap anyway …