Use SINGLE_ZONE to remove the highest zone determination Siged-off-by: Christoph Lameter Index: linux-2.6.17-mm6/mm/mempolicy.c =================================================================== --- linux-2.6.17-mm6.orig/mm/mempolicy.c 2006-07-07 16:50:18.790221361 -0700 +++ linux-2.6.17-mm6/mm/mempolicy.c 2006-07-07 16:53:46.057679926 -0700 @@ -103,9 +103,11 @@ static struct kmem_cache *sn_cache; #define PDprintk(fmt...) +#ifndef SINGLE_ZONE /* Highest zone. An specific allocation for a zone below that is not policied. */ int policy_zone = 0; +#endif struct mempolicy default_policy = { .refcnt = ATOMIC_INIT(1), /* never free it */ Index: linux-2.6.17-mm6/include/linux/mempolicy.h =================================================================== --- linux-2.6.17-mm6.orig/include/linux/mempolicy.h 2006-07-03 13:47:21.727467854 -0700 +++ linux-2.6.17-mm6/include/linux/mempolicy.h 2006-07-07 16:53:46.057679926 -0700 @@ -162,12 +162,18 @@ extern struct zonelist *huge_zonelist(st unsigned long addr); extern unsigned slab_node(struct mempolicy *policy); +#ifndef SINGLE_ZONE +#define policy_zone ZONE_NORMAL +#else extern int policy_zone; +#endif static inline void check_highest_zone(int k) { +#ifndef SINGLE_ZONE if (k > policy_zone) policy_zone = k; +#endif } int do_migrate_pages(struct mm_struct *mm,