Re: [PATCH] sched: Relax a restriction in sched_rt_can_attach()
From: Tejun Heo <hidden>
Date: 2015-05-05 19:00:55
Also in:
lkml
Hello, Thomas. On Tue, May 05, 2015 at 08:29:28PM +0200, Thomas Gleixner wrote:
I fully agree and after reading through this thread I really have to say that this whole notion of relax the admission control and then try to magically converge to the resource limits is horrible in all aspects.
This comes down to controllers allowing limits to be configured current usage. We need to allow and define what happens in that situation and moving a process into a full cgroup inherently follows the same pattern albeit from the other direction.
The idea of allowing overcommitment and magically converging to back to the limits yells heuristics all over the place and we all know how reliable heuristics are.
It's not magic heuristics. This is a core part of normal operation.
As Peter said several times: hard failure is good and desired. It's a very clear information on which people can act on. If the failures modes are nilly-willy today, as you wrote somewhere, then we need to fix that and make them consistent and understandable and not replace them by half baken heuristics which postpone the failure to some point where it is even less understandable.
There are no such magic heuristics because controllers need well defined behaviors when current is above limit anyway and behave exactly the same way no matter how that state is reached. For resources like RR slices, this doesn't work and that's why this is an issue, so yeah this is the process of finding out what must be able to fail.
If there are issues with run-away problems, i.e. upping a resource
limit which gets eaten up from the existing tasks before you can admit
a new one, then your magic convergence thing is again the wrong
answer. The right approach is:
1) Up the limit and make a reservation at the same time
2) Admit the new task and allow it to consume the reservation
3) Set it effectiveI don't really think this is a scenario we need to worry about. If we choose to fail migration, let's just fail it. There's no point in building a mechanism to work around malbehavior from its users.
quoted
Are you really going to force us to abandon cgroups and invent yet another grouping thing?Sigh no. I think cgroups can be fixed, if we just adhere to the basic principles of hierarchical resource management and remove/reject all magic "we'll fix that for you" nonsense.
So, let's do -EBUSY for hard resource failures which have to be exact. Thanks. -- tejun