lkml.org 
[lkml]   [2010]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch -mm v2] oom: exclude tasks with badness score of 0 from being selected
    An oom_badness() score of 0 means "never kill" according to
    Documentation/filesystems/proc.txt, so exclude it from being selected for
    kill. These tasks have either detached their p->mm or are set to
    OOM_DISABLE.

    Also removes an unnecessary initialization of points to 0 in
    mem_cgroup_out_of_memory(), select_bad_process() does this already.

    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Signed-off-by: David Rientjes <rientjes@google.com>
    ---
    mm/oom_kill.c | 13 ++-----------
    1 files changed, 2 insertions(+), 11 deletions(-)

    diff --git a/mm/oom_kill.c b/mm/oom_kill.c
    --- a/mm/oom_kill.c
    +++ b/mm/oom_kill.c
    @@ -326,17 +326,8 @@ static struct task_struct *select_bad_process(unsigned int *ppoints,
    *ppoints = 1000;
    }

    - /*
    - * skip kernel threads and tasks which have already released
    - * their mm.
    - */
    - if (!p->mm)
    - continue;
    - if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN)
    - continue;
    -
    points = oom_badness(p, totalpages);
    - if (points > *ppoints || !chosen) {
    + if (points > *ppoints) {
    chosen = p;
    *ppoints = points;
    }
    @@ -478,7 +469,7 @@ static int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
    void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask)
    {
    unsigned long limit;
    - unsigned int points = 0;
    + unsigned int points;
    struct task_struct *p;

    if (sysctl_panic_on_oom == 2)

    \
     
     \ /
      Last update: 2010-04-02 23:25    [W:4.467 / U:0.892 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site