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] :)

[1] https://patchwork.kernel.org/patch/10988261/

> I can implement
> the switching if so.
>

That would be perfect.

Thanks,
Paolo

>> 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