[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1493244753.2632.22.camel@sandisk.com>
Date: Wed, 26 Apr 2017 22:12:36 +0000
From: Bart Van Assche <Bart.VanAssche@...disk.com>
To: "paolo.valente@...aro.org" <paolo.valente@...aro.org>,
"juri.lelli@....com" <juri.lelli@....com>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-block@...r.kernel.org" <linux-block@...r.kernel.org>,
"peterz@...radead.org" <peterz@...radead.org>,
"patrick.bellasi@....com" <patrick.bellasi@....com>,
"axboe@...nel.dk" <axboe@...nel.dk>,
"joelaf@...gle.com" <joelaf@...gle.com>,
"andresoportus@...gle.com" <andresoportus@...gle.com>,
"morten.rasmussen@....com" <morten.rasmussen@....com>,
"aherrmann@...e.com" <aherrmann@...e.com>
Subject: Re: bfq-mq performance comparison to cfq
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.
Powered by blists - more mailing lists