Re: [PATCH 0/6] Use one zonelist per node instead of multiple zonelists v5 (resend)

From: Mel Gorman
Date: Thu Sep 13 2007 - 06:11:55 EST


On (12/09/07 16:27), Lee Schermerhorn didst pronounce:
> On Tue, 2007-09-11 at 22:30 +0100, Mel Gorman wrote:
> > (Sorry for the resend, I mucked up the TO: line in the earlier sending)
> >
> > This is the latest version of one-zonelist and it should be solid enough
> > for wider testing. To briefly summarise, the patchset replaces multiple
> > zonelists-per-node with one zonelist that is filtered based on nodemask and
> > GFP flags. I've dropped the patch that replaces inline functions with macros
> > from the end as it obscures the code for something that may or may not be a
> > performance benefit on older compilers. If we see performance regressions that
> > might have something to do with it, the patch is trivially to bring forward.
> >
> > Andrew, please merge to -mm for wider testing and consideration for merging
> > to mainline. Minimally, it gets rid of the hack in relation to ZONE_MOVABLE
> > and MPOL_BIND.
>
>
> Mel:
>
> I'm just getting to this after sorting out an issue with the memory
> controller stuff in 23-rc4-mm1. I'm building all my kernels with the
> memory controller enabled now, as it hits areas that I'm playing in. I
> wanted to give you a heads up that vmscan.c doesn't build with
> CONTAINER_MEM_CONT configured with your patches. I won't get to this
> until tomorrow. Since you're a few hours ahead of me, you might want to
> take a look. No worries, if you don't get a chance...
>

Thanks a lot. I took a look and you're right. Does the following patch
fix it for you?

====

Fix a compile bug with one-zonelist and the memory controller.

Signed-off-by: Mel Gorman <mel@xxxxxxxxx>
---
diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc4-mm1-onezonelist_v5r21/mm/vmscan.c linux-2.6.23-rc4-mm1-onezonelist_v5r21-fix/mm/vmscan.c
--- linux-2.6.23-rc4-mm1-onezonelist_v5r21/mm/vmscan.c 2007-09-12 10:00:22.000000000 +0100
+++ linux-2.6.23-rc4-mm1-onezonelist_v5r21-fix/mm/vmscan.c 2007-09-13 11:09:49.000000000 +0100
@@ -1368,11 +1368,11 @@ unsigned long try_to_free_mem_container_
.isolate_pages = mem_container_isolate_pages,
};
int node;
- struct zone **zones;
+ struct zonelist *zonelist;

for_each_online_node(node) {
- zones = NODE_DATA(node)->node_zonelists[ZONE_USERPAGES].zones;
- if (do_try_to_free_pages(zones, sc.gfp_mask, &sc))
+ zonelist = &NODE_DATA(node)->node_zonelist;
+ if (do_try_to_free_pages(zonelist, sc.gfp_mask, &sc))
return 1;
}
return 0;

-
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/