Thread (7 messages) 7 messages, 3 authors, 2012-10-19

Re: Is not locking task_lock in cgroup_fork() safe?

From: Li Zefan <hidden>
Date: 2012-10-08 05:46:18

On 2012/10/8 10:01, Tejun Heo wrote:
On Mon, Oct 08, 2012 at 11:00:00AM +0900, Tejun Heo wrote:
quoted
7e381b0eb1 ("cgroup: Drop task_lock(parent) on cgroup_fork()") removed
task_lock from cgroup_fork citing that current->cgroups can't change
due to threadgroup_change locking; however, threadgroup_change locking
is used only during CLONE_THREAD forking.  If @current is forking a
new process, there's nothing preventing someone else to migrate the
parent while forking is in progress and delete the css_set it
currently is using.  Am I confused somewhere?
You're right. threadgroup lock is held unconditionally in attach_task_py_pid(),
but it's held only for CLONE_THREAD in fork path, which I guess I overlooked
when reviewing the patch.
Also, please note that task_lock is likely to be hot on local CPU at
that point and avoiding it there might not really buy much.
Reverting that commit should be fine.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help