Re: [PATCH v4.15-rc9] sched, cgroup: Don't reject lower cpu.max on ancestors

From: Tejun Heo
Date: Tue Jan 30 2018 - 09:56:49 EST


Hello,

On Tue, Jan 30, 2018 at 11:21:56AM +0100, Peter Zijlstra wrote:
> afaiu the existing code does exactly the opposite, it forces the
> descendants to configure less than the parent allows.
>
> You're taking out an error condition and silently allowing descentant
> misconfiguration. How does that make sense?

Well, they're upper limits, not strict allocations. The current
behavior implemented by cpu isn't either a strict allocation or upper
limits. It disallows a child from having a value higher than the
parent (allocation-ish) but the sum of the children is allowed to
exceed the parent's (limit-ish).

The combination is rather arbitrary and makes it impossible to
delegate safely (a delegatee can block the delegator from reducing the
amount resource allocated to the delegatee) while not really
protecting against overcommit from descendants either.

We had this sort of input validations in different controllers all in
their own ways. In most cases, these aren't well thought out and we
can't support things like delegation without aligning controller
behaviors.

Thanks.

--
tejun