Bug 2170290

Summary: IODeviceWeight= just ignored
Product: Red Hat Enterprise Linux 9 Reporter: Kazuo Moriwaka <kmoriwak>
Component: systemdAssignee: systemd-maint
Status: CLOSED CURRENTRELEASE QA Contact: Frantisek Sumsal <fsumsal>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.1CC: dtardon, systemd-maint-list
Target Milestone: rcKeywords: Bugfix, Reproducer, TestOnly, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-02-16 09:23:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2138081    
Bug Blocks:    

Description Kazuo Moriwaka 2023-02-16 03:06:45 UTC
Description of problem:

In a systemd service unit, IODeviceWeight= settings have no effect.

Version-Release number of selected component (if applicable):

systemd-250-12.el9_1.1

How reproducible:

Always

Steps to Reproduce:
1. systemctl set-property chronyd.service IODeviceWeight="/dev/sda 95" 
2. cat /sys/fs/cgroup/system.slice/chronyd.service/io.bfq.weight


Actual results:

default 100

Expected results:

default 100
8:0 95

Additional info:

There are two options to set the I/O weight for a specific block device; io.bfq.weight provided by kernel and io.weight supported by systemd.
Setting the io.weight for a specific block device is unsupported because RHEL9 kernel doesn't set kernel option BLK_CGROUP_IOCOST.

# cat /boot/config-<ver> |grep "BLK_CGROUP_IOCOST"
# CONFIG_BLK_IOCOST is not set

systemd v250 doesn't support per-device IO weight with io.bfq.weight.

And systemd v251 support io.bfq.weight
https://github.com/systemd/systemd/commit/9f0c0c4e158e835c7227dd677d6148607eece89d