lkml.org 
[lkml]   [2007]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH 2.6.21-rc1-mm1] add check_highest_zone to build_zonelists_in_zone_order
From
Date

[PATCH 2.6.21-rc1-mm1] add check_highest_zone to build_zonelists_in_zone_order

We missed this in the "change zone order" series. We need to record
the highest populated zone, just as build_zonelists_node() does.
Memory policies apply only to this zone. Without this, we'll be
applying policy to all zones, including DMA, I think. Not having
thought about it much, I can't claim to understand the downside of
doing so.

Also, display selected "policy zone" during boot or reconfig
of zonelist order, if 'NUMA. Inquiring minds [might] want to know...

Cleanup: remove stale comment in set_zonelist_order()

Signed-off-by: Lee Schermerhorn <lee.schermerhorn@hp.com>

mm/page_alloc.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

Index: Linux/mm/page_alloc.c
===================================================================
--- Linux.orig/mm/page_alloc.c 2007-05-16 10:32:20.000000000 -0400
+++ Linux/mm/page_alloc.c 2007-05-16 15:18:53.000000000 -0400
@@ -2037,7 +2037,7 @@ static char zonelist_order_name[3][8] =


#ifdef CONFIG_NUMA
-/* The vaule user specified ....changed by config */
+/* The value user specified ....changed by config */
static int user_zonelist_order = ZONELIST_ORDER_DEFAULT;
/* string for sysctl */
#define NUMA_ZONELIST_ORDER_LEN 16
@@ -2215,8 +2215,10 @@ static void build_zonelists_in_zone_orde
for (j = 0; j < nr_nodes; j++) {
node = node_order[j];
z = &NODE_DATA(node)->node_zones[zone_type];
- if (populated_zone(z))
+ if (populated_zone(z)) {
zonelist->zones[pos++] = z;
+ check_highest_zone(zone_type);
+ }
}
}
zonelist->zones[pos] = NULL;
@@ -2278,7 +2280,6 @@ static int default_zonelist_order(void)

static void set_zonelist_order(void)
{
- /* dummy, just select node order. */
if (user_zonelist_order == ZONELIST_ORDER_DEFAULT)
current_zonelist_order = default_zonelist_order();
else
@@ -2458,6 +2459,9 @@ void build_all_zonelists(void)
zonelist_order_name[current_zonelist_order],
page_group_by_mobility_disabled ? "off" : "on",
vm_total_pages);
+#ifdef CONFIG_NUMA
+ printk("Policy zone: %s\n", zone_names[policy_zone]);
+#endif
}

/*

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

\
 
 \ /
  Last update: 2007-05-16 22:01    [W:0.023 / U:0.376 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site