Re: [PATCH 08/10] blkcg: implement blk-iocost

From: Michal Koutný
Date: Wed Oct 09 2019 - 11:36:37 EST


On Thu, Oct 03, 2019 at 09:45:52AM -0700, Tejun Heo <tj@xxxxxxxxxx> wrote:
> [...] but the qos file gets weird because the content of the file is
> more resource control policies than device properties.
I see two facets on this -- the semantics of the QoS controls and
storing controller parameters generally.

Because I'm not fully convinced using the root cgroup for the latter is
a good idea and I don't have a better one (what about
/sys/kernel/cgroup/?), I'd like to question the former to potentially
postpone finding the place for its parameters :-)


On Wed, Aug 28, 2019 at 03:05:58PM -0700, Tejun Heo <tj@xxxxxxxxxx> wrote:
> [...]
> Please see the top comment in blk-iocost.c and documentation for
> more details.
I admit I did't grasp the explanations in the cgroup-v2.rst, perhaps
some of the explanations from blk-iocost.c would be useful there as
well.

IIUC, the controls are supposed to be abstracted and generic to express
high-level ideas and be independent of particular details.
Here a bunch of parameters is introduced whose tuning may become a
complex optimization task.

What is the metric that is the QoS controller striving to guarantee?
How does it differ from the io.latency policy?


> [...]
> + * 2-2. Vrate Adjustment
> + * [...] When this delay becomes noticeable, it's a clear
> + * indication that the device is saturated and we lower the vrate. This
> + * saturation signal is fairly conservative as it only triggers when both
> + * hardware and software queues are filled up, and is used as the default
> + * busy signal.
(The following paragraph is based only on naïve understanding of the
block layer.) So the device's vrate is lowered, causing its vtime
growing slower, i.e. postponing issuing an IO later for all cgroups
accessing the device. But what's the purpose of this? If the queues fill
up, wouldn't be all naturally pushed back by the longer queue time
anyway? And wouldn't slowing down the device's vtime just cause queueing
elsewhere?

Thanks,
Michal

Attachment: signature.asc
Description: Digital signature