Messages in this thread | | | Date | Fri, 28 Mar 2008 19:55:16 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [-mm] Add an owner to the mm_struct (v2) |
| |
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.
Thanks, -Kame
| |