Skip to content

Commit

Permalink
mm, oom: pass an oom order of -1 when triggered by sysrq
Browse files Browse the repository at this point in the history
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: David Rientjes <[email protected]>
Cc: Sergey Senozhatsky <[email protected]>
Cc: Michal Hocko <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
rientjes authored and torvalds committed Sep 8, 2015
1 parent 6e0fc46 commit 54e9e29
Show file tree
Hide file tree
Showing 5 changed files with 3 additions and 8 deletions.
3 changes: 1 addition & 2 deletions drivers/tty/sysrq.c
Original file line number Diff line number Diff line change
Expand Up @@ -358,8 +358,7 @@ static void moom_callback(struct work_struct *ignored)
.zonelist = node_zonelist(first_memory_node, gfp_mask),
.nodemask = NULL,
.gfp_mask = gfp_mask,
.order = 0,
.force_kill = true,
.order = -1,
};

mutex_lock(&oom_lock);
Expand Down
1 change: 0 additions & 1 deletion include/linux/oom.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ struct oom_control {
nodemask_t *nodemask;
gfp_t gfp_mask;
int order;
bool force_kill;
};

/*
Expand Down
1 change: 0 additions & 1 deletion mm/memcontrol.c
Original file line number Diff line number Diff line change
Expand Up @@ -1550,7 +1550,6 @@ static void mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask,
.nodemask = NULL,
.gfp_mask = gfp_mask,
.order = order,
.force_kill = false,
};
struct mem_cgroup *iter;
unsigned long chosen_points = 0;
Expand Down
5 changes: 2 additions & 3 deletions mm/oom_kill.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*/
if (test_tsk_thread_flag(task, TIF_MEMDIE)) {
if (!oc->force_kill)
if (oc->order != -1)
return OOM_SCAN_ABORT;
}
if (!task->mm)
Expand All @@ -278,7 +278,7 @@ enum oom_scan_t oom_scan_process_thread(struct oom_control *oc,
if (oom_task_origin(task))
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_OK;
Expand Down Expand Up @@ -718,7 +718,6 @@ void pagefault_out_of_memory(void)
.nodemask = NULL,
.gfp_mask = 0,
.order = 0,
.force_kill = false,
};

if (mem_cgroup_oom_synchronize(true))
Expand Down
1 change: 0 additions & 1 deletion mm/page_alloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -2698,7 +2698,6 @@ __alloc_pages_may_oom(gfp_t gfp_mask, unsigned int order,
.nodemask = ac->nodemask,
.gfp_mask = gfp_mask,
.order = order,
.force_kill = false,
};
struct page *page;

Expand Down

0 comments on commit 54e9e29

Please sign in to comment.