On Wed, 2017-04-26 at 10:18 +0200, Paolo Valente wrote: > I guess that both the above issues may not be dramatic. In contrast, > the following last issue seems harder to address: BFQ uses two > different privileging schemes, one suitable for interactive > applications, and one suitable for soft real-time applications. So, > what scheme should BFQ enable for processes in the RT I/O class? > > Because of these concerns, also for I/O I would find much clearer and > flexible an ad-hoc, complete and explicit solution like the one(s) > Juri reports (I've already nagged some of the recipients here to get > support and collaboration on such sort of extensions of the basic > benefits of a good I/O scheduler). The numerical values of I/O priorities are part of the API between kernel and user space API and hence the numerical value associated with a class must not change. But we would associate different priority values with interactive and soft real-time applications, e.g. IOPRIO_CLASS_RT(0) for soft real-time applications and IOPRIO_CLASS_RT(7) for interactive applications. See also http://man7.org/linux/man-pages/man2/ioprio_set.2.html. In my opinion the above proposal does not contradict with what has been proposed for informed run-times. We could e.g. add support for configuring the I/O priority to the block I/O controller cgroup. No matter how informed run-times communicate application constraints to the kernel, the configured I/O scheduler and the block layer will have to realize these constraints. If anyone thinks that there is a mechanism that is better suited to communicate these constraints to the kernel than I/O priorities I'm interested to hear about that alternative. Bart.