linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paul Menage <paul@paulmenage.org>
To: Mike Galbraith <efault@gmx.de>
Cc: LKML <linux-kernel@vger.kernel.org>, Tejun Heo <htejun@gmail.com>,
	Li Zefan <lizf@cn.fujitsu.com>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	David Rientjes <rientjes@google.com>
Subject: Re: patch] cpusets, cgroups: disallow attaching kthreadd
Date: Tue, 18 Oct 2011 21:57:47 -0700	[thread overview]
Message-ID: <CALdu-PDurd4-_jpkhHJ9VuripesWGfUA+Mi8PoyRjJsmxdRqLw@mail.gmail.com> (raw)
In-Reply-To: <1318925436.9641.23.camel@marge.simson.net>

On Tue, Oct 18, 2011 at 1:10 AM, Mike Galbraith <efault@gmx.de> wrote:
>
> Save the user some unexpected trouble, just say no.
>
> Signed-off-by: Mike Galbraith <efault@gmx.de>

Acked-by: Paul Menage <paul@paulmenage.org>

>
> ---
>  kernel/cpuset.c |    6 ++++--
>  kernel/sched.c  |   10 ++++++++++
>  2 files changed, 14 insertions(+), 2 deletions(-)
>
> Index: linux-3.0-tip/kernel/cpuset.c
> ===================================================================
> --- linux-3.0-tip.orig/kernel/cpuset.c
> +++ linux-3.0-tip/kernel/cpuset.c
> @@ -59,6 +59,7 @@
>  #include <linux/mutex.h>
>  #include <linux/workqueue.h>
>  #include <linux/cgroup.h>
> +#include <linux/kthread.h>
>
>  /*
>  * Workqueue for cpuset related tasks.
> @@ -1382,9 +1383,10 @@ static int cpuset_can_attach(struct cgro
>         * set of allowed nodes is unnecessary.  Thus, cpusets are not
>         * applicable for such threads.  This prevents checking for success of
>         * set_cpus_allowed_ptr() on all attached tasks before cpus_allowed may
> -        * be changed.
> +        * be changed.  We also disallow attaching kthreadd, to prevent it's
> +        * child from becoming trapped should it then acquire PF_THREAD_BOUND.
>         */
> -       if (tsk->flags & PF_THREAD_BOUND)
> +       if (tsk->flags & PF_THREAD_BOUND || tsk == kthreadd_task)
>                return -EINVAL;
>
>        return 0;
> Index: linux-3.0-tip/kernel/sched.c
> ===================================================================
> --- linux-3.0-tip.orig/kernel/sched.c
> +++ linux-3.0-tip/kernel/sched.c
> @@ -71,6 +71,7 @@
>  #include <linux/ctype.h>
>  #include <linux/ftrace.h>
>  #include <linux/slab.h>
> +#include <linux/kthread.h>
>
>  #include <asm/tlb.h>
>  #include <asm/irq_regs.h>
> @@ -9141,6 +9142,15 @@ cpu_cgroup_destroy(struct cgroup_subsys
>  static int
>  cpu_cgroup_can_attach_task(struct cgroup *cgrp, struct task_struct *tsk)
>  {
> +       /*
> +        * kthreadd can fork workers for an RT workqueue in a cgroup
> +        * which may or may not have rt_runtime allocated.  Just say no,
> +        * as attaching a global resource to a non-root group  doesn't
> +        * make any sense anyway.
> +        */
> +       if (tsk == kthreadd_task)
> +               return -EINVAL;
> +
>  #ifdef CONFIG_RT_GROUP_SCHED
>        if (!sched_rt_can_attach(cgroup_tg(cgrp), tsk))
>                return -EINVAL;
>
>
>

  parent reply	other threads:[~2011-10-19  4:58 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-23  6:21 [patch] cpusets: allow PF_THREAD_BOUND kworkers to escape from a cpuset Mike Galbraith
2011-09-23  7:00 ` Li Zefan
2011-09-23  7:19   ` Mike Galbraith
2011-09-23  9:12     ` David Rientjes
2011-09-23  9:42       ` Mike Galbraith
2011-09-23 10:53         ` Mike Galbraith
2011-09-23 13:27           ` David Rientjes
2011-09-23 14:33             ` Mike Galbraith
2011-09-23 18:16               ` Mike Galbraith
2011-09-23 20:20               ` David Rientjes
2011-09-24  3:21                 ` Tejun Heo
2011-10-10  5:34               ` Mike Galbraith
2011-10-10  8:03                 ` [patch] cpusets, cgroups: disallow attaching kthreadd Mike Galbraith
2011-10-10 16:43                   ` Tejun Heo
2011-10-11  2:31                     ` Mike Galbraith
2011-10-11 14:08                     ` Peter Zijlstra
2011-10-11 16:57                       ` Mike Galbraith
2011-10-12  1:22                         ` David Rientjes
2011-10-12  1:45                           ` Mike Galbraith
2011-10-12  1:20                       ` David Rientjes
2011-10-18  8:10                   ` patch] " Mike Galbraith
2011-10-18  8:16                     ` David Rientjes
2011-10-18  8:42                     ` Peter Zijlstra
2011-10-18  8:47                       ` Mike Galbraith
2011-10-18  9:06                         ` Peter Zijlstra
2011-10-18  9:23                           ` Mike Galbraith
2011-10-18 10:11                             ` Mike Galbraith
2011-10-18 20:38                               ` David Rientjes
2011-10-19  4:00                                 ` Mike Galbraith
2011-10-19  4:53                                   ` Paul Menage
2011-10-19  4:56                                     ` Paul Menage
2011-10-19  5:28                                       ` Mike Galbraith
2011-10-19  7:50                                 ` Peter Zijlstra
2011-10-19 19:47                                   ` David Rientjes
2011-10-20 10:32                                     ` Peter Zijlstra
2011-10-20 21:24                                       ` David Rientjes
2011-10-19  4:57                     ` Paul Menage [this message]
2011-10-19  5:24                       ` [patch-final] " Mike Galbraith
2011-10-19  7:54                         ` Peter Zijlstra
2011-10-19  8:00                           ` Paul Menage
2011-10-19  8:21                           ` Mike Galbraith
2011-10-26 20:27                         ` David Rientjes
2011-11-10 20:51                           ` David Rientjes
2011-12-06 20:13                             ` David Rientjes
2011-12-06 22:47                               ` Andrew Morton
2011-12-06 23:53                                 ` David Rientjes
2011-12-07  0:05                                   ` Andrew Morton
2011-12-07  3:18                                   ` [resubmit] " Mike Galbraith
2011-12-07  4:36                                     ` Mike Galbraith
2011-12-07 22:03                                       ` David Rientjes
2011-12-14 20:16                                         ` Andrew Morton
2011-12-15  2:50                                           ` David Rientjes
2012-01-06 22:06                                       ` Andrew Morton
2012-01-07  6:34                                         ` Mike Galbraith
2012-01-07  7:59                                           ` Andrew Morton
2011-12-07 22:01                                     ` David Rientjes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CALdu-PDurd4-_jpkhHJ9VuripesWGfUA+Mi8PoyRjJsmxdRqLw@mail.gmail.com \
    --to=paul@paulmenage.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=efault@gmx.de \
    --cc=htejun@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=rientjes@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).