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.