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++;
--
To unsubscribe from this list: send the line "unsubscribe cgroups" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [Monitors]

  Powered by Linux