Re: [PATCHSET cgroup/for-3.8] cpuset: decouple cpuset locking from cgroup core
From: Glauber Costa <hidden>
Date: 2012-11-30 10:00:29
Also in:
cgroups, lkml
On 11/30/2012 01:49 PM, Michal Hocko wrote:
On Fri 30-11-12 13:42:28, Glauber Costa wrote: [...]quoted
Speaking of it: Tejun's tree still lacks the kmem bits. How hard would it be for you to merge his branch into a temporary branch of your tree?review-cpuset-locking is based on a post merge window merges so I cannot merge it as is. I could cherry-pick the series after it is settled. I have no idea how much conflicts this would bring, though.
Ok.
I believe the task problem only exist for us for kmem. So I could come
up with a patchset that only deals with child cgroup creation, and
ignore attach for now. So long as we have a mechanism that will work for
it, and don't get lost and forget to patch it when the trees are merged.
Now, what I am actually seeing with cgroup creation, is that the
children will copy a lot of the values from the parent, like swappiness,
hierarchy, etc. Once the child copies it, we should no longer be able to
change those values in the parent: otherwise we'll get funny things like
parent.use_hierarchy = 1, child.use_hierarchy = 0.
One option is to take a global lock in memcg_alloc_css(), and keep it
locked until we did all the cgroup bookkeeping, and then unlock it in
css_online. But I am guessing Tejun won't like it very much.
What do you think about a children counter? If we are going to do things
similar to the attach_in_progress of cpuset, we might very well turn it
into a direct counter so we don't have to iterate at all.
The code would look like: (simplified example for use_hierarchy)
memcg_lock();
if (memcg->nr_children != 0)
return -EINVAL;
else
memcg->use_hierarchy = val
memcg_unlock()
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>