ftrace: limit trace entries
authorSteven Rostedt <rostedt@goodmis.org>
Mon, 12 May 2008 19:21:04 +0000 (21:21 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 23 May 2008 20:05:14 +0000 (22:05 +0200)
commit3eefae994d9224fb7771a3ddb683868363c23510
tree0c7fe35765b485ff2a155c4ae1189199476a34b3
parent6c6c27969a4c6024e6c8838829546c02aaddca18
ftrace: limit trace entries

Currently there is no protection from the root user to use up all of
memory for trace buffers. If the root user allocates too many entries,
the OOM killer might start kill off all tasks.

This patch adds an algorith to check the following condition:

 pages_requested > (freeable_memory + current_trace_buffer_pages) / 4

If the above is met then the allocation fails. The above prevents more
than 1/4th of freeable memory from being used by trace buffers.

To determine the freeable_memory, I made determine_dirtyable_memory in
mm/page-writeback.c global.

Special thanks goes to Peter Zijlstra for suggesting the above calculation.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/linux/writeback.h
kernel/trace/trace.c
mm/page-writeback.c