On Wed, 8 Jul 2015, Michal Hocko wrote: > From: Michal Hocko <mho...@suse.cz> > > A github user rfjakob has reported the following issue via IRC. > <rfjakob> Manually triggering the OOM killer does not work anymore in 4.0.5 > <rfjakob> This is what it looks like: > https://gist.github.com/rfjakob/346b7dc611fc3cdf4011 > <rfjakob> Basically, what happens is that the GPU driver frees some memory, > that satisfies the OOM killer > <rfjakob> But the memory is allocated immediately again, and in the, no > processes are killed no matter how often you trigger the oom killer > <rfjakob> "in the end" > > Quoting from the github: > " > [19291.202062] sysrq: SysRq : Manual OOM execution > [19291.208335] Purging GPU memory, 74399744 bytes freed, 8728576 bytes still > pinned. > [19291.390767] sysrq: SysRq : Manual OOM execution > [19291.396792] Purging GPU memory, 74452992 bytes freed, 8728576 bytes still > pinned. > [19291.560349] sysrq: SysRq : Manual OOM execution > [19291.566018] Purging GPU memory, 75489280 bytes freed, 8728576 bytes still > pinned. > [19291.729944] sysrq: SysRq : Manual OOM execution > [19291.735686] Purging GPU memory, 74399744 bytes freed, 8728576 bytes still > pinned. > [19291.918637] sysrq: SysRq : Manual OOM execution > [19291.924299] Purging GPU memory, 74403840 bytes freed, 8728576 bytes still > pinned. > " > > The issue is that sysrq+f (force_kill) gets confused by the regular OOM > heuristic which tries to prevent from OOM killer if some of the oom > notifier can relase a memory. The heuristic doesn't make much sense for > the sysrq+f path because this one is used by the administrator to kill > a memory hog. > > Reported-by: Jakob Unterwurzacher <jakob...@gmail.com> > Signed-off-by: Michal Hocko <mho...@suse.cz>
Nack, the oom notify list has no place in the oom killer, it should be called in the page allocator before calling out_of_memory(). out_of_memory() should serve a single, well defined purpose: kill a process. If this were done, you wouldn't need random hacks like this in place. This also shouldn't be included in a patchset that redefines the semantics of a forced oom kill, which is quite separate. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/