ring-buffer: Add set/clear_current_oom_origin() during allocations
authorSteven Rostedt (VMware) <rostedt@goodmis.org>
Wed, 4 Apr 2018 15:29:57 +0000 (11:29 -0400)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Fri, 6 Apr 2018 12:56:52 +0000 (08:56 -0400)
commit927e56db6253225166d521cee3772624347b5cd5
treefb922defc804cd746ff42d3a784e4aee0014dcb8
parent2a872fa4e9c8adc79c830e4009e1cc0c013a9d8a
ring-buffer: Add set/clear_current_oom_origin() during allocations

As si_mem_available() can say there is enough memory even though the memory
available is not useable by the ring buffer, it is best to not kill innocent
applications because the ring buffer is taking up all the memory while it is
trying to allocate a great deal of memory.

If the allocator is user space (because kernel threads can also increase the
size of the kernel ring buffer on boot up), then after si_mem_available()
says there is enough memory, set the OOM killer to kill the current task if
an OOM triggers during the allocation.

Link: http://lkml.kernel.org/r/20180404062340.GD6312@dhcp22.suse.cz
Suggested-by: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
kernel/trace/ring_buffer.c