[PATCH] Replace highest_possible_node_id() with nr_node_ids
highest_possible_node_id() is currently used to calculate the last possible node idso that the network subsystem can figure out how to size per node arrays. I think having the ability to determine the maximum amount of nodes in a system at runtime is useful but then we should name this entry correspondingly, it should return the number of node_ids, and the the value needs to be setup only once on bootup. The node_possible_map does not change after bootup. This patch introduces nr_node_ids and replaces the use of highest_possible_node_id(). nr_node_ids is calculated on bootup when the page allocators pagesets are initialized. [deweerdt@free.fr: fix oops] Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: Neil Brown <neilb@suse.de> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
5ec553a904
commit
74c7aa8b85
|
@ -352,7 +352,7 @@ extern nodemask_t node_possible_map;
|
|||
#define node_possible(node) node_isset((node), node_possible_map)
|
||||
#define first_online_node first_node(node_online_map)
|
||||
#define next_online_node(nid) next_node((nid), node_online_map)
|
||||
int highest_possible_node_id(void);
|
||||
extern int nr_node_ids;
|
||||
#else
|
||||
#define num_online_nodes() 1
|
||||
#define num_possible_nodes() 1
|
||||
|
@ -360,7 +360,7 @@ int highest_possible_node_id(void);
|
|||
#define node_possible(node) ((node) == 0)
|
||||
#define first_online_node 0
|
||||
#define next_online_node(nid) (MAX_NUMNODES)
|
||||
#define highest_possible_node_id() 0
|
||||
#define nr_node_ids 1
|
||||
#endif
|
||||
|
||||
#define any_online_node(mask) \
|
||||
|
|
|
@ -664,6 +664,26 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order,
|
|||
return i;
|
||||
}
|
||||
|
||||
#if MAX_NUMNODES > 1
|
||||
int nr_node_ids __read_mostly;
|
||||
EXPORT_SYMBOL(nr_node_ids);
|
||||
|
||||
/*
|
||||
* Figure out the number of possible node ids.
|
||||
*/
|
||||
static void __init setup_nr_node_ids(void)
|
||||
{
|
||||
unsigned int node;
|
||||
unsigned int highest = 0;
|
||||
|
||||
for_each_node_mask(node, node_possible_map)
|
||||
highest = node;
|
||||
nr_node_ids = highest + 1;
|
||||
}
|
||||
#else
|
||||
static void __init setup_nr_node_ids(void) {}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
/*
|
||||
* Called from the slab reaper to drain pagesets on a particular node that
|
||||
|
@ -3169,6 +3189,7 @@ static int __init init_per_zone_pages_min(void)
|
|||
min_free_kbytes = 65536;
|
||||
setup_per_zone_pages_min();
|
||||
setup_per_zone_lowmem_reserve();
|
||||
setup_nr_node_ids();
|
||||
return 0;
|
||||
}
|
||||
module_init(init_per_zone_pages_min)
|
||||
|
@ -3370,18 +3391,4 @@ EXPORT_SYMBOL(pfn_to_page);
|
|||
EXPORT_SYMBOL(page_to_pfn);
|
||||
#endif /* CONFIG_OUT_OF_LINE_PFN_TO_PAGE */
|
||||
|
||||
#if MAX_NUMNODES > 1
|
||||
/*
|
||||
* Find the highest possible node id.
|
||||
*/
|
||||
int highest_possible_node_id(void)
|
||||
{
|
||||
unsigned int node;
|
||||
unsigned int highest = 0;
|
||||
|
||||
for_each_node_mask(node, node_possible_map)
|
||||
highest = node;
|
||||
return highest;
|
||||
}
|
||||
EXPORT_SYMBOL(highest_possible_node_id);
|
||||
#endif
|
||||
|
|
|
@ -115,7 +115,7 @@ fail:
|
|||
static int
|
||||
svc_pool_map_init_percpu(struct svc_pool_map *m)
|
||||
{
|
||||
unsigned int maxpools = highest_possible_processor_id()+1;
|
||||
unsigned int maxpools = highest_possible_processor_id() + 1;
|
||||
unsigned int pidx = 0;
|
||||
unsigned int cpu;
|
||||
int err;
|
||||
|
@ -143,7 +143,7 @@ svc_pool_map_init_percpu(struct svc_pool_map *m)
|
|||
static int
|
||||
svc_pool_map_init_pernode(struct svc_pool_map *m)
|
||||
{
|
||||
unsigned int maxpools = highest_possible_node_id()+1;
|
||||
unsigned int maxpools = nr_node_ids;
|
||||
unsigned int pidx = 0;
|
||||
unsigned int node;
|
||||
int err;
|
||||
|
|
Loading…
Reference in New Issue