提交 08e0f6a9 编写于 作者: C Christoph Lameter 提交者: Linus Torvalds

[PATCH] Add NUMA_BUILD definition in kernel.h to avoid #ifdef CONFIG_NUMA

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 && <numa_condition>) {
...
}

[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: NChristoph Lameter <clameter@sgi.com>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 c7241913
...@@ -350,4 +350,11 @@ struct sysinfo { ...@@ -350,4 +350,11 @@ struct sysinfo {
/* Trap pasters of __FUNCTION__ at compile-time */ /* Trap pasters of __FUNCTION__ at compile-time */
#define __FUNCTION__ (__func__) #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 #endif
...@@ -942,7 +942,7 @@ get_page_from_freelist(gfp_t gfp_mask, unsigned int order, ...@@ -942,7 +942,7 @@ get_page_from_freelist(gfp_t gfp_mask, unsigned int order,
*/ */
do { do {
zone = *z; zone = *z;
if (unlikely((gfp_mask & __GFP_THISNODE) && if (unlikely(NUMA_BUILD && (gfp_mask & __GFP_THISNODE) &&
zone->zone_pgdat != zonelist->zones[0]->zone_pgdat)) zone->zone_pgdat != zonelist->zones[0]->zone_pgdat))
break; break;
if ((alloc_flags & ALLOC_CPUSET) && if ((alloc_flags & ALLOC_CPUSET) &&
...@@ -1256,14 +1256,12 @@ unsigned int nr_free_pagecache_pages(void) ...@@ -1256,14 +1256,12 @@ unsigned int nr_free_pagecache_pages(void)
{ {
return nr_free_zone_pages(gfp_zone(GFP_HIGHUSER)); 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) void si_meminfo(struct sysinfo *val)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册