On 8/12/21 10:51 AM, Tejun Heo wrote:
There's an almost fundamental conflict between ioprio and cgroup IO
control. bfq layers it so that ioprio classes define the global
priority above weights and then ioprio modifies the weights within
each class. mq-deadline isn't cgroup aware and who knows what kind of
priority inversions it's creating when its ioprio enforcement is
interacting with other cgroup controllers.
Are you perhaps referring to the iocost and iolatency cgroup
controllers? Is it ever useful to combine these controllers with the
ioprio controller? The ioprio controller was introduced with the goal to
provide the information to the storage controller about which I/O
request to handle first. My understanding of the iocost and iolatency
controllers is that these cgroup controllers decide in which order to
process I/O requests. Neither controller has the last word over I/O
order if the queue depth is larger than one, something that is essential
to achieve reasonable performance.
Bart.