From: Oleg Nesterov <oleg@redhat.com>
To: Paul Menage <menage@google.com>
Cc: Ben Blum <bblum@andrew.cmu.edu>,
linux-kernel@vger.kernel.org,
containers@lists.linux-foundation.org, akpm@linux-foundation.org,
ebiederm@xmission.com, lizf@cn.fujitsu.com, matthltc@us.ibm.com
Subject: Re: [RFC] [PATCH 2/2] cgroups: make procs file writable
Date: Wed, 2 Jun 2010 23:38:33 +0200 [thread overview]
Message-ID: <20100602213832.GB31949@redhat.com> (raw)
In-Reply-To: <AANLkTimfHlapl7mbRyAazWW5q5Wzs23n6i9wIhVtSv6r@mail.gmail.com>
On 06/02, Paul Menage wrote:
>
> On Wed, Jun 2, 2010 at 1:58 PM, Oleg Nesterov <oleg@redhat.com> wrote:
> >> The "it" that you're proposing to remove is in fact the code that
> >> handles those races.
> >
> > In that case I confused, and I thought we already agreed that
> > the PF_EXITING check in attach_task_by_pid() is not strictly needed
> > for correctness.
>
> Not quite - something is required for correctness, and the PF_EXITING
> check provides that correctness, with a very small window (between
> setting PF_EXITING and calling cgroup_exit) where we might arguably
> have been able to move the thread but decline to do so because it's
> simpler not to do so and no-one cares. That's the optimization that I
> meant - the data structures are slightly simpler since there's no way
> to tell when a task has passed cgroup_exit(), and instead we just see
> if they've passed PF_EXITING.
>
> >
> > Once again, the task can call do_exit() and set PF_EXITING right
> > after the check.
>
> Yes, the important part is that they haven't set it *before* the check
> in attach_task_by_pid(). If they have set it before that, then they
> could be anywhere in the exit path after PF_EXITING, and we decline to
> move them since it's possible that they've already passed
> cgroup_exit(). If the exiting task has not yet set PF_EXITING, then it
> can't possibly get into the critical section in cgroup_exit() since
> attach_task_by_pid() holds task->alloc_lock.
It doesn't ? At least in Linus's tree.
cgroup_attach_task() does, and this time PF_EXITING is understandable.
Oleg.
next prev parent reply other threads:[~2010-06-02 21:40 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-30 1:30 [RFC] [PATCH v2 0/2] cgroups: implement moving a threadgroup's threads atomically with cgroup.procs Ben Blum
2010-05-30 1:30 ` Ben Blum
[not found] ` <20100530013002.GA762-kwnxxEB+oiWqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-05-30 1:31 ` [RFC] [PATCH 1/2] cgroups: read-write lock CLONE_THREAD forking per threadgroup Ben Blum
2010-05-30 1:31 ` Ben Blum
2010-05-30 1:33 ` [RFC] [PATCH 2/2] cgroups: make procs file writable Ben Blum
2010-05-30 1:33 ` Ben Blum
2010-05-31 17:52 ` Oleg Nesterov
[not found] ` <20100531175242.GA14691-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-05-31 18:04 ` Oleg Nesterov
2010-06-03 4:56 ` Ben Blum
2010-05-31 18:04 ` Oleg Nesterov
2010-06-01 18:57 ` Paul Menage
[not found] ` <AANLkTimcrX0TjzDMNJdubR92pAO4IPATbVpyvvVt0qIV-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-02 14:06 ` Oleg Nesterov
2010-06-02 14:06 ` Oleg Nesterov
[not found] ` <20100602140659.GA5324-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-06-02 19:53 ` Paul Menage
2010-06-02 19:53 ` Paul Menage
[not found] ` <AANLkTin-T6ij3xf0ceGoCamwcoayxyf0GdAKY6yXDMVl-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-02 20:20 ` Oleg Nesterov
2010-06-02 20:20 ` Oleg Nesterov
[not found] ` <20100602202048.GB28663-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-06-02 20:31 ` Paul Menage
2010-06-02 20:31 ` Paul Menage
[not found] ` <AANLkTimrJFiidM8BlUNvmzfapUAv8369R9PYnTscasEf-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-02 20:58 ` Oleg Nesterov
2010-06-02 20:58 ` Oleg Nesterov
2010-06-02 21:12 ` Paul Menage
[not found] ` <AANLkTimfHlapl7mbRyAazWW5q5Wzs23n6i9wIhVtSv6r-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-02 21:38 ` Oleg Nesterov
2010-06-02 21:38 ` Oleg Nesterov [this message]
2010-06-02 22:03 ` Paul Menage
[not found] ` <AANLkTimsusetA9B95-LvKsDdAB_PegYH7Zljyi4Doe_q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-03 4:44 ` Ben Blum
2010-06-03 4:44 ` Ben Blum
[not found] ` <20100602213832.GB31949-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-06-02 22:03 ` Paul Menage
[not found] ` <20100602205855.GA30039-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-06-02 21:12 ` Paul Menage
2010-06-03 4:40 ` Ben Blum
2010-06-03 4:40 ` Ben Blum
2010-06-03 14:48 ` Oleg Nesterov
[not found] ` <20100603044001.GA21006-jeg9jHBoDvuqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-06-03 14:48 ` Oleg Nesterov
[not found] ` <20100531180446.GA16249-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-06-01 18:57 ` Paul Menage
2010-06-03 4:56 ` Ben Blum
[not found] ` <20100603045629.GC21006-jeg9jHBoDvuqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-06-03 14:43 ` Oleg Nesterov
2010-06-03 14:43 ` Oleg Nesterov
[not found] ` <20100530013303.GC762-kwnxxEB+oiWqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-05-31 17:52 ` Oleg Nesterov
-- strict thread matches above, loose matches on Subject: below --
2009-08-20 21:14 + cgroups-add-functionality-to-read-write-lock-clone_thread-forking-per-threadgroup.patch added to -mm tree akpm
2009-08-21 10:26 ` + cgroups-add-functionality-to-read-write-lock-clone_thread-forking-pe r-threadgroup.patch " Oleg Nesterov
2009-08-21 10:45 ` Oleg Nesterov
2009-08-21 23:37 ` Paul Menage
2009-08-22 13:09 ` Oleg Nesterov
2010-01-03 19:06 ` Ben Blum
[not found] ` <20100103190613.GA13423-OM76b2Iv3yLQjUSlxSEPGw@public.gmane.org>
2010-01-03 19:09 ` [RFC] [PATCH 2/2] cgroups: make procs file writable Ben Blum
2010-01-03 19:09 ` Ben Blum
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=20100602213832.GB31949@redhat.com \
--to=oleg@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=bblum@andrew.cmu.edu \
--cc=containers@lists.linux-foundation.org \
--cc=ebiederm@xmission.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=matthltc@us.ibm.com \
--cc=menage@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.