• Mandeep Singh Baines's avatar
    oom: allow a non-CAP_SYS_RESOURCE proces to oom_score_adj down · dabb16f6
    Mandeep Singh Baines authored
    We'd like to be able to oom_score_adj a process up/down as it
    enters/leaves the foreground.  Currently, it is not possible to oom_adj
    down without CAP_SYS_RESOURCE.  This patch allows a task to decrease its
    oom_score_adj back to the value that a CAP_SYS_RESOURCE thread set it to
    or its inherited value at fork.  Assuming the thread that has forked it
    has oom_score_adj of 0, each process could decrease it back from 0 upon
    activation unless a CAP_SYS_RESOURCE thread elevated it to something
    higher.
    
    Alternative considered:
    
    * a setuid binary
    * a daemon with CAP_SYS_RESOURCE
    
    Since you don't wan't all processes to be able to reduce their oom_adj, a
    setuid or daemon implementation would be complex.  The alternatives also
    have much higher overhead.
    
    This patch updated from original patch based on feedback from David
    Rientjes.
    Signed-off-by: default avatarMandeep Singh Baines <msb@chromium.org>
    Acked-by: default avatarDavid Rientjes <rientjes@google.com>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Ying Han <yinghan@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    dabb16f6
base.c 81.3 KB