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 – <https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.2_release_notes/deprecated_functionality> …

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”?

Hi
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 https://bugzilla.opensuse.org/show_bug.cgi?id=1102557
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

Gene

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 …