mm, oom: pass an oom order of -1 when triggered by sysrq
authorDavid Rientjes <rientjes@google.com>
Tue, 8 Sep 2015 22:00:39 +0000 (15:00 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 8 Sep 2015 22:35:28 +0000 (15:35 -0700)
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 <rientjes@google.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/tty/sysrq.c
include/linux/oom.h
mm/memcontrol.c
mm/oom_kill.c
mm/page_alloc.c

index ed3e258f4ee9ff91967a97ce1a41b355a6ebfbf6..95b330a9ea983dcafae63956cefd03ddefe9379b 100644 (file)
@@ -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);
index cb29085ded3714794a967f3c5455ddae6b2abe65..8fb67b9e6110094c0409bcd615e79b5a14aeddd1 100644 (file)
@@ -17,7 +17,6 @@ struct oom_control {
        nodemask_t      *nodemask;
        gfp_t           gfp_mask;
        int             order;
-       bool            force_kill;
 };
 
 /*
index 573d90347aa2d17d1a394648c07287551c34e865..9871f13fc35bd64c8784a56ed8e3c2c301055715 100644 (file)
@@ -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;
index 80a7cbd89d664f92616c611d065a260776f5ac2d..77adc8e876aa22105fd3123e0a7f71937539d465 100644 (file)
@@ -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)
@@ -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;
@@ -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))
index 96536144185c61a1b9ab1ce8d9c45c1a3e8bc739..5f9394df19bf4708329aacbedb8e3bcb927315c3 100644 (file)
@@ -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;