On Wed 17-01-18 07:41:55, Tejun Heo wrote: > Hello, David. > > On Tue, Jan 16, 2018 at 06:15:08PM -0800, David Rientjes wrote: > > The behavior of killing an entire indivisible memory consumer, enabled > > by memory.oom_group, is an oom policy itself. It specifies that all > > I thought we discussed this before but maybe I'm misremembering. > There are two parts to the OOM policy. One is victim selection, the > other is the action to take thereafter.
Yes we have. Multiple times! The last time I've said the very same thing was yesterday http://lkml.kernel.org/r/20180116220907.gd17...@dhcp22.suse.cz > The two are different and conflating the two don't work too well. For > example, please consider what should be given to the delegatee when > delegating a subtree, which often is a good excercise when designing > these APIs. Absolutely agreed! And moreover, there are not all that many ways what to do as an action. You just kill a logical entity - be it a process or a logical group of processes. But you have way too many policies how to select that entity. Do you want to chose the youngest process/group because all the older ones have been computing real stuff and you would lose days of your cpu time? Or should those who pay more should be protected (aka give them static priorities), or you name it... I am sorry, I still didn't grasp the full semantic of the proposed soluton but the mere fact it is starting by conflating selection and the action is a no go and a wrong API. This is why I've said that what you (David) outlined yesterday is probably going to suffer from a much longer discussion and most likely to be not acceptable. Your patchset proves me correct... -- Michal Hocko SUSE Labs