[lkml]   [2009]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    SubjectRe: Memory overcommit
    > 2.  I started out running my mlock test program as root (later
    > switched to use "ulimit -l unlimited" first). But badness() reckons
    > CAP_SYS_ADMIN or CAP_SYS_RESOURCE is a reason to quarter your points;
    > and CAP_SYS_RAWIO another reason to quarter your points: so running
    > as root makes you sixteen times less likely to be killed. Quartering
    > is anyway debatable, but sixteenthing seems utterly excessive to me.
    > I moved the CAP_SYS_RAWIO test in with the others, so it does no
    > more than quartering; but is quartering appropriate anyway? I did
    > wonder if I was right to be "subverting" the fine-grained CAPs in
    > this way, but have since seen unrelated mail from one who knows
    > better, implying they're something of a fantasy, that su and sudo
    > are indeed what's used in the real world. Maybe this patch was okay.

    I agree quartering is debatable.
    At least, killing quartering is worth for any user, and it can be push into -stable.

    From 27331555366c908a93c2cdd780b77e421869c5af Mon Sep 17 00:00:00 2001
    From: KOSAKI Motohiro <>
    Date: Wed, 28 Oct 2009 11:28:39 +0900
    Subject: [PATCH] oom: Mitigate suer-user's bonus of oom-score

    Currently, badness calculation code of oom contemplate following bonus.
    - Super-user have quartering oom-score
    - CAP_SYS_RAWIO process (e.g. database) also have quartering oom-score

    The problem is, Super-users have CAP_SYS_RAWIO too. Then, they have
    sixteenthing bonus. it's obviously too excessive and meaningless.

    This patch fixes it.

    Signed-off-by: KOSAKI Motohiro <>
    mm/oom_kill.c | 13 +++++--------
    1 files changed, 5 insertions(+), 8 deletions(-)

    diff --git a/mm/oom_kill.c b/mm/oom_kill.c
    index ea2147d..40d323d 100644
    --- a/mm/oom_kill.c
    +++ b/mm/oom_kill.c
    @@ -152,18 +152,15 @@ unsigned long badness(struct task_struct *p, unsigned long uptime)
    * Superuser processes are usually more important, so we make it
    * less likely that we kill those.
    - */
    - if (has_capability_noaudit(p, CAP_SYS_ADMIN) ||
    - has_capability_noaudit(p, CAP_SYS_RESOURCE))
    - points /= 4;
    - /*
    - * We don't want to kill a process with direct hardware access.
    + *
    + * Plus, We don't want to kill a process with direct hardware access.
    * Not only could that mess up the hardware, but usually users
    * tend to only have this flag set on applications they think
    * of as important.
    - if (has_capability_noaudit(p, CAP_SYS_RAWIO))
    + if (has_capability_noaudit(p, CAP_SYS_ADMIN) ||
    + has_capability_noaudit(p, CAP_SYS_RESOURCE) ||
    + has_capability_noaudit(p, CAP_SYS_RAWIO))
    points /= 4;


     \ /
      Last update: 2009-10-28 03:51    [W:0.024 / U:1.184 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site