Commit 54e9e291 authored by David Rientjes's avatar David Rientjes Committed by Linus Torvalds

mm, oom: pass an oom order of -1 when triggered by sysrq

The force_kill member of struct oom_control isn't needed if an order of -1
is used instead.  This is the same as order == -1 in struct
compact_control which requires full memory compaction.

This patch introduces no functional change.
Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: Michal Hocko <mhocko@suse.cz>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 6e0fc46d
...@@ -358,8 +358,7 @@ static void moom_callback(struct work_struct *ignored) ...@@ -358,8 +358,7 @@ static void moom_callback(struct work_struct *ignored)
.zonelist = node_zonelist(first_memory_node, gfp_mask), .zonelist = node_zonelist(first_memory_node, gfp_mask),
.nodemask = NULL, .nodemask = NULL,
.gfp_mask = gfp_mask, .gfp_mask = gfp_mask,
.order = 0, .order = -1,
.force_kill = true,
}; };
mutex_lock(&oom_lock); mutex_lock(&oom_lock);
......
...@@ -17,7 +17,6 @@ struct oom_control { ...@@ -17,7 +17,6 @@ struct oom_control {
nodemask_t *nodemask; nodemask_t *nodemask;
gfp_t gfp_mask; gfp_t gfp_mask;
int order; int order;
bool force_kill;
}; };
/* /*
......
...@@ -1550,7 +1550,6 @@ static void mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask, ...@@ -1550,7 +1550,6 @@ static void mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask,
.nodemask = NULL, .nodemask = NULL,
.gfp_mask = gfp_mask, .gfp_mask = gfp_mask,
.order = order, .order = order,
.force_kill = false,
}; };
struct mem_cgroup *iter; struct mem_cgroup *iter;
unsigned long chosen_points = 0; unsigned long chosen_points = 0;
......
...@@ -265,7 +265,7 @@ enum oom_scan_t oom_scan_process_thread(struct oom_control *oc, ...@@ -265,7 +265,7 @@ enum oom_scan_t oom_scan_process_thread(struct oom_control *oc,
* Don't allow any other task to have access to the reserves. * Don't allow any other task to have access to the reserves.
*/ */
if (test_tsk_thread_flag(task, TIF_MEMDIE)) { if (test_tsk_thread_flag(task, TIF_MEMDIE)) {
if (!oc->force_kill) if (oc->order != -1)
return OOM_SCAN_ABORT; return OOM_SCAN_ABORT;
} }
if (!task->mm) if (!task->mm)
...@@ -278,7 +278,7 @@ enum oom_scan_t oom_scan_process_thread(struct oom_control *oc, ...@@ -278,7 +278,7 @@ enum oom_scan_t oom_scan_process_thread(struct oom_control *oc,
if (oom_task_origin(task)) if (oom_task_origin(task))
return OOM_SCAN_SELECT; return OOM_SCAN_SELECT;
if (task_will_free_mem(task) && !oc->force_kill) if (task_will_free_mem(task) && oc->order != -1)
return OOM_SCAN_ABORT; return OOM_SCAN_ABORT;
return OOM_SCAN_OK; return OOM_SCAN_OK;
...@@ -718,7 +718,6 @@ void pagefault_out_of_memory(void) ...@@ -718,7 +718,6 @@ void pagefault_out_of_memory(void)
.nodemask = NULL, .nodemask = NULL,
.gfp_mask = 0, .gfp_mask = 0,
.order = 0, .order = 0,
.force_kill = false,
}; };
if (mem_cgroup_oom_synchronize(true)) if (mem_cgroup_oom_synchronize(true))
......
...@@ -2698,7 +2698,6 @@ __alloc_pages_may_oom(gfp_t gfp_mask, unsigned int order, ...@@ -2698,7 +2698,6 @@ __alloc_pages_may_oom(gfp_t gfp_mask, unsigned int order,
.nodemask = ac->nodemask, .nodemask = ac->nodemask,
.gfp_mask = gfp_mask, .gfp_mask = gfp_mask,
.order = order, .order = order,
.force_kill = false,
}; };
struct page *page; struct page *page;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment