• Mandeep Singh Baines's avatar
    cgroup: remove extra calls to find_existing_css_set · 61d1d219
    Mandeep Singh Baines authored
    In cgroup_attach_proc, we indirectly call find_existing_css_set 3
    times. It is an expensive call so we want to call it a minimum
    of times. This patch only calls it once and stores the result so
    that it can be used later on when we call cgroup_task_migrate.
    
    This required modifying cgroup_task_migrate to take the new css_set
    (which we obtained from find_css_set) as a parameter. The nice side
    effect of this is that cgroup_task_migrate is now identical for
    cgroup_attach_task and cgroup_attach_proc. It also now returns a
    void since it can never fail.
    
    Changes in V5:
    * https://lkml.org/lkml/2012/1/20/344 (Tejun Heo)
      * Remove css_set_refs
    Changes in V4:
    * https://lkml.org/lkml/2011/12/22/421 (Li Zefan)
      * Avoid GFP_KERNEL (sleep) in rcu_read_lock by getting css_set in
        a separate loop not under an rcu_read_lock
    Changes in V3:
    * https://lkml.org/lkml/2011/12/22/13 (Li Zefan)
      * Fixed earlier bug by creating a seperate patch to remove tasklist_lock
    Changes in V2:
    * https://lkml.org/lkml/2011/12/20/372 (Tejun Heo)
      * Move find_css_set call into loop which creates the flex array
    * Author
      * Kill css_set_refs and use group_size instead
      * Fix an off-by-one error in counting css_set refs
      * Add a retval check in out_list_teardown
    Signed-off-by: default avatarMandeep Singh Baines <msb@chromium.org>
    Acked-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: containers@lists.linux-foundation.org
    Cc: cgroups@vger.kernel.org
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Paul Menage <paul@paulmenage.org>
    61d1d219
cgroup.c 137 KB