Messages in this thread | | | From | Nikanth Karthikesan <> | Subject | Re: [RFC] [PATCH] Cgroup based OOM killer controller | Date | Thu, 22 Jan 2009 14:53:13 +0530 |
| |
On Thursday 22 January 2009 14:13:38 David Rientjes wrote: > On Thu, 22 Jan 2009, Nikanth Karthikesan wrote: > > No, this is not specific to memcg or cpuset cases alone. The same > > needless kills will take place even without memcg or cpuset when an > > administrator specifies a light memory consumer to be killed before a > > heavy memory user. But it is up to the administrator to use it wisely. > > You can't specify different behavior for an oom cgroup depending on what > type of oom it is, which is the problem with this proposal. >
No. This does not disable any such special selection criteria which is used without this controller.
> For example, if your task triggers an oom as the result of its exclusive > cpuset placement, the oom killer should prefer to kill a task within that > cpuset to allow for future memory freeing. > > So, with your proposal, an administrator can specify the oom priority of > an entire aggregate of tasks but the behavior may not be desired for a > cpuset-constrained oom, while it may be perfectly legitimate for a global > unconstrained oom. > > I can specify a higher oom priority for a cpuset because its jobs are less > critical and I would prefer it gets killed in a system-wide oom, but any > other cpuset that ooms will needlessly kill these tasks when there is no > benefit. >
This patch just chooses the task with highest oom.victim among those tasks which would have been chosen without this controller. So all the "kill within memcg/cpuset" should work as always! It should just kill a task within the memcg with highest oom.victim.
Thanks Nikanth
| |