• Daisuke Nishimura's avatar
    cgroup: notify_on_release may not be triggered in some cases · 1f5320d5
    Daisuke Nishimura authored
    notify_on_release must be triggered when the last process in a cgroup is
    move to another. But if the first(and only) process in a cgroup is moved to
    another, notify_on_release is not triggered.
    
    	# mkdir /cgroup/cpu/SRC
    	# mkdir /cgroup/cpu/DST
    	#
    	# echo 1 >/cgroup/cpu/SRC/notify_on_release
    	# echo 1 >/cgroup/cpu/DST/notify_on_release
    	#
    	# sleep 300 &
    	[1] 8629
    	#
    	# echo 8629 >/cgroup/cpu/SRC/tasks
    	# echo 8629 >/cgroup/cpu/DST/tasks
    	-> notify_on_release for /SRC must be triggered at this point,
    	   but it isn't.
    
    This is because put_css_set() is called before setting CGRP_RELEASABLE
    in cgroup_task_migrate(), and is a regression introduce by the
    commit:74a1166d(cgroups: make procs file writable), which was merged
    into v3.0.
    
    Cc: Ben Blum <bblum@andrew.cmu.edu>
    Cc: <stable@vger.kernel.org> # v3.0.x and later
    Acked-by: default avatarLi Zefan <lizefan@huawei.com>
    Signed-off-by: default avatarDaisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    1f5320d5
cgroup.c 148 KB