• K
    oom: oom_kill doesn't kill vfork parent (or child) · 8c5cd6f3
    KOSAKI Motohiro 提交于
    Current oom_kill doesn't only kill the victim process, but also kill all
    thas shread the same mm.  it mean vfork parent will be killed.
    
    This is definitely incorrect.  another process have another oom_adj.  we
    shouldn't ignore their oom_adj (it might have OOM_DISABLE).
    
    following caller hit the minefield.
    
    ===============================
            switch (constraint) {
            case CONSTRAINT_MEMORY_POLICY:
                    oom_kill_process(current, gfp_mask, order, 0, NULL,
                                    "No available memory (MPOL_BIND)");
                    break;
    
    Note: force_sig(SIGKILL) send SIGKILL to all thread in the process.
    We don't need to care multi thread in here.
    Signed-off-by: NKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Paul Menage <menage@google.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    8c5cd6f3
oom_kill.c 16.4 KB