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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> @@ -2091,6 +2010,10 @@ int cgroup_attach_proc(struct cgroup *cgrp, struct task_struct *leader)
>  	 * rcu or tasklist locked. instead, build an array of all threads in the
>  	 * group - group_rwsem prevents new threads from appearing, and if
>  	 * threads exit, this will just be an over-estimate.
> +	 *
> +	 * While creating the list, also make sure css_sets exist for all
> +	 * threads to be migrated. we use find_css_set, which allocates a new
> +	 * one if necessary.
>  	 */
>  	group_size = get_nr_threads(leader);
>  	/* flex_array supports very large thread-groups better than kmalloc. */
> @@ -2137,6 +2060,12 @@ int cgroup_attach_proc(struct cgroup *cgrp, struct task_struct *leader)
>  		/* nothing to do if this task is already in the cgroup */
>  		if (ent.cgrp == cgrp)
>  			continue;
> +		ent.cg = find_css_set(tsk->cgroups, cgrp);

unfortunately This won't work, because we are holding tasklist_lock.

> +		if (!ent.cg) {
> +			retval = -ENOMEM;
> +			group_size = i;
> +			goto out_list_teardown;
> +		}
>  		retval = flex_array_put(group, i, &ent, GFP_ATOMIC);
>  		BUG_ON(retval != 0);
>  		i++;
_______________________________________________
Containers mailing list
Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linuxfoundation.org/mailman/listinfo/containers


[Index of Archives]     [Cgroups]     [Netdev]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux