From: Christoph Lameter The NUMA_BUILD constant is always available and will be set to 1 on NUMA_BUILDs. That way checks valid only under CONFIG_NUMA can easily be done without #ifdef CONFIG_NUMA F.e. if (NUMA_BUILD && ) { ... } [akpm: not a thing we'd normally do, but CONFIG_NUMA is special: it is causing ifdef explosion in core kernel, so let's see if this is a comfortable way in whcih to control that] Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton --- include/linux/kernel.h | 7 +++++++ mm/page_alloc.c | 12 +++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff -puN include/linux/kernel.h~add-numa_build-definition-in-kernelh-to-avoid-ifdef include/linux/kernel.h --- a/include/linux/kernel.h~add-numa_build-definition-in-kernelh-to-avoid-ifdef +++ a/include/linux/kernel.h @@ -350,4 +350,11 @@ struct sysinfo { /* Trap pasters of __FUNCTION__ at compile-time */ #define __FUNCTION__ (__func__) +/* This helps us to avoid #ifdef CONFIG_NUMA */ +#ifdef CONFIG_NUMA +#define NUMA_BUILD 1 +#else +#define NUMA_BUILD 0 +#endif + #endif diff -puN mm/page_alloc.c~add-numa_build-definition-in-kernelh-to-avoid-ifdef mm/page_alloc.c --- a/mm/page_alloc.c~add-numa_build-definition-in-kernelh-to-avoid-ifdef +++ a/mm/page_alloc.c @@ -934,7 +934,7 @@ get_page_from_freelist(gfp_t gfp_mask, u */ do { zone = *z; - if (unlikely((gfp_mask & __GFP_THISNODE) && + if (unlikely(NUMA_BUILD && (gfp_mask & __GFP_THISNODE) && zone->zone_pgdat != zonelist->zones[0]->zone_pgdat)) break; if ((alloc_flags & ALLOC_CPUSET) && @@ -1248,14 +1248,12 @@ unsigned int nr_free_pagecache_pages(voi { return nr_free_zone_pages(gfp_zone(GFP_HIGHUSER)); } -#ifdef CONFIG_NUMA -static void show_node(struct zone *zone) + +static inline void show_node(struct zone *zone) { - printk("Node %ld ", zone_to_nid(zone)); + if (NUMA_BUILD) + printk("Node %ld ", zone_to_nid(zone)); } -#else -#define show_node(zone) do { } while (0) -#endif void si_meminfo(struct sysinfo *val) { _