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

From: Paolo Valente
Date: Wed Sep 11 2019 - 04:19:03 EST

> Il giorno 10 set 2019, alle ore 18:08, Tejun Heo <tj@xxxxxxxxxx> ha scritto:
> Hello, Michal.
> On Tue, Sep 10, 2019 at 02:55:14PM +0200, Michal Koutnà wrote:
>> This adds the generic io.weight attribute. How will this compose with
>> the weight from IO schedulers? (AFAIK, only BFQ allows proportional
>> control as of now. +CC Paolo.)
> The two being enabled at the same time doesn't make sense, so we can
> just switch over to bfq when bfq is selected as the iosched. I asked
> what Paolo wanted to do in terms of interface a couple times now but
> didn't get an answer and he posted a patch which makes the two
> controllers conflict, so.... Paolo, so it looks like you want to
> rename all bfq files to drop the bfq prefix, right?

Yep, mainly because ... this is the solution you voted and you
yourself proposed [1] :)


> I can implement
> the switching if so.

That would be perfect.


>> I see this attributes are effectively per-cgroup per-device. Apparently,
>> one device should have only one weight across hierarchy. Would it make
>> sense to have io.bfq.weight and io.cost.weight with disjunctive devices?
> It never makes sense to have both enabled, so I don't think that
> interface makes sense.
>>> + .name = "cost.qos",
>>> + .flags = CFTYPE_ONLY_ON_ROOT,
>>> [...]
>>> + .name = "cost.model",
>>> + .flags = CFTYPE_ONLY_ON_ROOT,
>> I'm concerned that these aren't true cgroup attributes. The root cgroup
>> would act as container for global configuration options. Wouldn't these
>> values better fit as (configurable) attributes of the respective
>> devices?
> Initially, I put them under block device sysfs but it was too clumsy
> with different config file formats and all. I think it's better to
> have global controller configs at the root cgroup.
>> Secondly, how is CFTYPE_ONLY_ON_ROOT supposed to be presented in cgroup
>> namespaces?
> Not at all. These are system-wide configs. cgroup namespaces
> shouldn't have anything which aren't in non-root cgroups.
> Thanks.
> --
> tejun