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

From: Tejun Heo
Date: Tue Sep 10 2019 - 12:09:01 EST


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? I can implement
the switching if so.

> 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