Messages in this thread | | | Date | Fri, 28 Mar 2008 16:22:48 +0530 | From | Balbir Singh <> | Subject | Re: [-mm] Add an owner to the mm_struct (v2) |
| |
KAMEZAWA Hiroyuki wrote: > On Fri, 28 Mar 2008 13:53:16 +0530 > Balbir Singh <balbir@linux.vnet.ibm.com> wrote: >> -static struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p) >> +struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p) >> { >> return container_of(task_subsys_state(p, mem_cgroup_subsys_id), >> struct mem_cgroup, css); >> @@ -250,12 +250,17 @@ void mm_init_cgroup(struct mm_struct *mm >> >> mem = mem_cgroup_from_task(p); >> css_get(&mem->css); >> - mm->mem_cgroup = mem; >> } >> >> void mm_free_cgroup(struct mm_struct *mm) >> { >> - css_put(&mm->mem_cgroup->css); >> + struct mem_cgroup *mem; >> + >> + /* >> + * TODO: Should we assign mm->owner to NULL here? >> + */ >> + mem = mem_cgroup_from_task(rcu_dereference(mm->owner)); >> + css_put(&mem->css); >> } >> > How about changing this css_get()/css_put() from accounting against mm_struct > to accouting against task_struct ? > It seems simpler way after this mm->owner change.
But the reason why we account the mem_cgroup is that we don't want the mem_cgroup to be deleted. I hope you meant mem_cgroup instead of mm_struct.
-- Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL
| |