mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Benjamin Blum <bblum@google.com>
To: Ben Blum <bblum@google.com>,
	linux-kernel@vger.kernel.org,
	containers@lists.linux-foundation.org, akpm@linux-foundation.org,
	serue@us.ibm.com, lizf@cn.fujitsu.com, menage@google.com
Subject: Re: [PATCH 5/6] Makes procs file writable to move all threads by tgid  at once
Date: Tue, 28 Jul 2009 17:23:01 -0700	[thread overview]
Message-ID: <2f86c2480907281723n7452c7f5l5a475e8120dccd83@mail.gmail.com> (raw)
In-Reply-To: <2f86c2480907241452m74c50975k522c5a43a62e8459@mail.gmail.com>

On Fri, Jul 24, 2009 at 2:52 PM, Benjamin Blum<bblum@google.com> wrote:
> On Fri, Jul 24, 2009 at 3:02 AM, Louis Rilling<Louis.Rilling@kerlabs.com> wrote:
>> On 23/07/09 20:22 -0700, Ben Blum wrote:
>>> @@ -408,6 +409,15 @@ You can attach the current shell task by echoing 0:
>>>
>>>  # echo 0 > tasks
>>>
>>> +The cgroup.procs file is useful for managing all tasks in a threadgroup at
>>> +once. It works the same way as the tasks file, but moves all tasks in the
>>> +threadgroup with the specified tgid.
>>> +
>>> +Writing the pid of a task that's not the threadgroup leader (i.e., a pid
>>> +that isn't a tgid) is treated as invalid. Writing a '0' to cgroup.procs will
>>> +attach the writing task and all tasks in its threadgroup, but is invalid if
>>> +the writing task is not the leader of the threadgroup.
>>> +
>>
>> This restriction sounds unfortunate and I'm not sure that there are good reasons
>> for it (see below).
>
> Would it be preferable to allow any thread in a threadgroup to move
> the whole group to a new cgroup? Would that undermine the desired
> restriction of the tasks file in which a thread needs to have
> sufficient perms to move a thread that's not itself, or is the task
> file's restriction there undesirable in the case of threadgroups?

Still wondering on what to do about this. Noting that this restriction
approximately parallels the behaviour you'd get from using the tasks
file, I think it'd be safer to leave it like this then possibly in the
future lift the restriction, rather than make it currently lifted then
decide in the future that we want to re-impose it.

>>> +      * to move all tasks to the new cgroup. the only fail case henceforth
>>> +      * is if the threadgroup leader has PF_EXITING set (in which case all
>>> +      * the other threads get killed) - if other threads happen to be
>>
>> This statement is wrong. A thread group leader can have PF_EXITING (and even
>> become zombie) while other sub-threads continue their execution. For instance it
>> is perfectly valid for a thread group leader to call sys_exit(), and no other
>> thread will be affected.
>
> Is that the case? Then, what becomes of his task_struct when he's
> gone, since presumably all the sub-threads will need it. Does it just
> hang around?
>
> If so, would the desired behaviour be to proceed with moving all
> sub-threads if the leader is exiting? (That's not a very big change
> code-wise)
>

I've fixed this, and also implemented the rwsem as threadgroup-local.
If there's no more discussion on this version of the patch, I'll send
out the revised series soon.

  parent reply	other threads:[~2009-07-29  0:23 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-24  3:21 [PATCH 0/6] CGroups: cgroup memberlist enhancement+fix Ben Blum
2009-07-24  3:21 ` [PATCH 1/6] Adds a read-only "procs" file similar to "tasks" that shows only unique tgids Ben Blum
2009-07-24  3:21 ` [PATCH 2/6] Ensures correct concurrent opening/reading of pidlists across pid namespaces Ben Blum
2009-07-24  3:21 ` [PATCH 3/6] Quick vmalloc vs kmalloc fix to the case where array size is too large Ben Blum
2009-07-27  5:14   ` Li Zefan
2009-07-27 15:49     ` Benjamin Blum
2009-07-24  3:21 ` [PATCH 4/6] Changes css_set freeing mechanism to be under RCU Ben Blum
2009-07-24  3:22 ` [PATCH 5/6] Makes procs file writable to move all threads by tgid at once Ben Blum
2009-07-24 10:02   ` Louis Rilling
2009-07-24 10:08     ` Louis Rilling
2009-07-24 19:05       ` Benjamin Blum
2009-07-24 21:52     ` Benjamin Blum
2009-07-24 21:57       ` Paul Menage
2009-08-03 10:52         ` Louis Rilling
2009-07-29  0:23       ` Benjamin Blum [this message]
2009-08-03 11:00         ` Louis Rilling
2009-07-24 15:50   ` Matt Helsley
2009-07-24 16:01     ` Paul Menage
2009-07-24 17:23       ` Matt Helsley
2009-07-24 17:47         ` Paul Menage
2009-07-24 20:53           ` Benjamin Blum
2009-07-24 21:06             ` Matt Helsley
2009-07-24 21:36               ` Paul Menage
2009-11-09 17:07   ` Daniel Lezcano
2009-11-10  1:29     ` Li Zefan
2009-11-10 10:26       ` Daniel Lezcano
2009-11-11  2:07         ` Li Zefan
2009-11-11 20:06           ` Daniel Lezcano
2009-07-24  3:22 ` [PATCH 6/6] Lets ss->can_attach and ss->attach do whole threadgroups at a time 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=2f86c2480907281723n7452c7f5l5a475e8120dccd83@mail.gmail.com \
    --to=bblum@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=containers@lists.linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=menage@google.com \
    --cc=serue@us.ibm.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

all inboxes | Powered by JetHome®