Re: [PATCH 3/3] cgroup: remove extra calls to find_existing_css_set

From: Li Zefan
Date: Wed Jan 04 2012 - 21:08:36 EST


Mandeep Singh Baines wrote:
> 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 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: Mandeep Singh Baines <msb@xxxxxxxxxxxx>

Acked-by: Li Zefan <lizf@xxxxxxxxxxxxxx>

> Cc: Tejun Heo <tj@xxxxxxxxxx>
> Cc: Li Zefan <lizf@xxxxxxxxxxxxxx>
> Cc: containers@xxxxxxxxxxxxxxxxxxxxxxxxxx
> Cc: cgroups@xxxxxxxxxxxxxxx
> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
> Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: Paul Menage <paul@xxxxxxxxxxxxxx>
> ---
> kernel/cgroup.c | 142 +++++++++++-------------------------------------------
> 1 files changed, 29 insertions(+), 113 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/