Messages in this thread | | | Date | Sun, 10 Jun 2012 15:53:10 -0700 (PDT) | From | Hugh Dickins <> | Subject | Re: [PATCH] memcg: fix use_hierarchy css_is_ancestor oops regression |
| |
On Mon, 11 Jun 2012, Johannes Weiner wrote: > On Sun, Jun 10, 2012 at 11:54:47AM -0700, Hugh Dickins wrote: > > If use_hierarchy is set, reclaim testing soon oopses in css_is_ancestor() > > called from __mem_cgroup_same_or_subtree() called from page_referenced(): > > when processes are exiting, it's easy for mm_match_cgroup() to pass along > > a NULL memcg coming from a NULL mm->owner. > > > > Check for that in __mem_cgroup_same_or_subtree(). Return true or false? > > False because we cannot know if it was in the hierarchy, but also false > > because it's better not to count a reference from an exiting process. > > > > Signed-off-by: Hugh Dickins <hughd@google.com> > > Looks like an older version of the patch that introduced it slipped > into the tree, Konstantin noted this problem during review. The final > version did > > match = memcg && __mem_cgroup_same_or_subtree(root, memcg); > > in the caller because of it. > > Do you think it would be cleaner this way, since this is also the > place where that memcg is looked up, and so the "can return NULL" > handling after mem_cgroup_from_task() would be in the same place?
I don't mind, either way.
It depends on whether we add more such uses which could receive a NULL memcg. I tend to prefer dealing with rare conditions (which this is) inside the callee, but common conditions before calling from the caller.
But let's let others decide.
> > But either way, > > Acked-by: Johannes Weiner <hannes@cmpxchg.org> > > Thanks, Hugh!
And thank you, Hannes!
Hugh
| |