Re: [PATCH v4 2/5] memcg : pass scan nodemask

From: KAMEZAWA Hiroyuki
Date: Mon Aug 01 2011 - 22:29:32 EST


On Mon, 1 Aug 2011 15:59:53 +0200
Michal Hocko <mhocko@xxxxxxx> wrote:

> On Wed 27-07-11 14:47:42, KAMEZAWA Hiroyuki wrote:
> >
> > pass memcg's nodemask to try_to_free_pages().
> >
> > try_to_free_pages can take nodemask as its argument but memcg
> > doesn't pass it. Considering memcg can be used with cpuset on
> > big NUMA, memcg should pass nodemask if available.
> >
> > Now, memcg maintain nodemask with periodic updates. pass it.
> >
> > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
> > ---
> > include/linux/memcontrol.h | 2 +-
> > mm/memcontrol.c | 8 ++++++--
> > mm/vmscan.c | 3 ++-
> > 3 files changed, 9 insertions(+), 4 deletions(-)
> >
> [...]
> > Index: mmotm-0710/mm/vmscan.c
> > ===================================================================
> > --- mmotm-0710.orig/mm/vmscan.c
> > +++ mmotm-0710/mm/vmscan.c
> > @@ -2280,6 +2280,7 @@ unsigned long try_to_free_mem_cgroup_pag
> > unsigned long nr_reclaimed;
> > unsigned long start, end;
> > int nid;
> > + nodemask_t *mask;
> > struct scan_control sc = {
> > .may_writepage = !laptop_mode,
> > .may_unmap = 1,
> > @@ -2302,7 +2303,7 @@ unsigned long try_to_free_mem_cgroup_pag
> > * take care of from where we get pages. So the node where we start the
> > * scan does not need to be the current node.
> > */
> > - nid = mem_cgroup_select_victim_node(mem_cont);
> > + nid = mem_cgroup_select_victim_node(mem_cont, &mask);
>
> The mask is not used anywhere AFAICS and using it is a point of the
> patch AFAIU. I guess you wanted to use &sc.nodemask, right?
>
> Other than that, looks good to me.
>
> Reviewed-by: Michal Hocko <mhocko@xxxxxxx>

Ah, sorry. I'll fix.

Thanks,
-Kame

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/