|
@@ -34,6 +34,7 @@
|
|
|
#include <linux/ptrace.h>
|
|
|
#include <linux/freezer.h>
|
|
|
#include <linux/ftrace.h>
|
|
|
+#include <linux/ratelimit.h>
|
|
|
|
|
|
#define CREATE_TRACE_POINTS
|
|
|
#include <trace/events/oom.h>
|
|
@@ -444,6 +445,8 @@ static void oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
|
|
|
struct task_struct *t = p;
|
|
|
struct mm_struct *mm;
|
|
|
unsigned int victim_points = 0;
|
|
|
+ static DEFINE_RATELIMIT_STATE(oom_rs, DEFAULT_RATELIMIT_INTERVAL,
|
|
|
+ DEFAULT_RATELIMIT_BURST);
|
|
|
|
|
|
/*
|
|
|
* If the task is already exiting, don't alarm the sysadmin or kill
|
|
@@ -454,7 +457,7 @@ static void oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (printk_ratelimit())
|
|
|
+ if (__ratelimit(&oom_rs))
|
|
|
dump_header(p, gfp_mask, order, memcg, nodemask);
|
|
|
|
|
|
task_lock(p);
|