Re: [PATCH 6/9] mm, page_alloc: simplify zonelist initialization

From: Mel Gorman
Date: Fri Jul 14 2017 - 05:55:48 EST


On Fri, Jul 14, 2017 at 10:00:03AM +0200, Michal Hocko wrote:
>
> zonelist = &pgdat->node_zonelists[ZONELIST_NOFALLBACK];
> - j = build_zonelists_node(pgdat, zonelist, 0);
> - zonelist->_zonerefs[j].zone = NULL;
> - zonelist->_zonerefs[j].zone_idx = 0;
> + zoneref_idx = build_zonelists_node(pgdat, zonelist, zoneref_idx);
> + zonelist->_zonerefs[zoneref_idx].zone = NULL;
> + zonelist->_zonerefs[zoneref_idx].zone_idx = 0;
> }
>
> /*
> @@ -4946,21 +4949,13 @@ static void build_thisnode_zonelists(pg_data_t *pgdat)
> * exhausted, but results in overflowing to remote node while memory
> * may still exist in local DMA zone.
> */
> -static int node_order[MAX_NUMNODES];
>
> static void build_zonelists(pg_data_t *pgdat)
> {
> - int i, node, load;
> + static int node_order[MAX_NUMNODES];
> + int node, load, i = 0;

Emm, node_order can be large. The first distro config I checked
indicated that this is 8K. I got hung up on that part and didn't look
closely at the rest of the patch.

--
Mel Gorman
SUSE Labs