mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
[PATCH] for_each_online_pgdat: remove sorting pgdat
Because pgdat_list was linked to pgdat_list in *reverse* order, (By default) some of arch has to sort it by themselves. for_each_pgdat has gone..for_each_online_pgdat() uses node_online_map, which doesn't need to be sorted. This patch removes codes for sorting pgdat. Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
ec936fc563
commit
3571761fe4
@ -352,17 +352,6 @@ void __init zone_sizes_init(void)
|
|||||||
{
|
{
|
||||||
int nid;
|
int nid;
|
||||||
|
|
||||||
/*
|
|
||||||
* Insert nodes into pgdat_list backward so they appear in order.
|
|
||||||
* Clobber node 0's links and NULL out pgdat_list before starting.
|
|
||||||
*/
|
|
||||||
pgdat_list = NULL;
|
|
||||||
for (nid = MAX_NUMNODES - 1; nid >= 0; nid--) {
|
|
||||||
if (!node_online(nid))
|
|
||||||
continue;
|
|
||||||
NODE_DATA(nid)->pgdat_next = pgdat_list;
|
|
||||||
pgdat_list = NODE_DATA(nid);
|
|
||||||
}
|
|
||||||
|
|
||||||
for_each_online_node(nid) {
|
for_each_online_node(nid) {
|
||||||
unsigned long zones_size[MAX_NR_ZONES] = {0, 0, 0};
|
unsigned long zones_size[MAX_NR_ZONES] = {0, 0, 0};
|
||||||
|
@ -378,31 +378,6 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize)
|
|||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* pgdat_insert - insert the pgdat into global pgdat_list
|
|
||||||
* @pgdat: the pgdat for a node.
|
|
||||||
*/
|
|
||||||
static void __init pgdat_insert(pg_data_t *pgdat)
|
|
||||||
{
|
|
||||||
pg_data_t *prev = NULL, *next;
|
|
||||||
|
|
||||||
for_each_online_pgdat(next)
|
|
||||||
if (pgdat->node_id < next->node_id)
|
|
||||||
break;
|
|
||||||
else
|
|
||||||
prev = next;
|
|
||||||
|
|
||||||
if (prev) {
|
|
||||||
prev->pgdat_next = pgdat;
|
|
||||||
pgdat->pgdat_next = next;
|
|
||||||
} else {
|
|
||||||
pgdat->pgdat_next = pgdat_list;
|
|
||||||
pgdat_list = pgdat;
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* memory_less_nodes - allocate and initialize CPU only nodes pernode
|
* memory_less_nodes - allocate and initialize CPU only nodes pernode
|
||||||
* information.
|
* information.
|
||||||
@ -745,11 +720,5 @@ void __init paging_init(void)
|
|||||||
pfn_offset, zholes_size);
|
pfn_offset, zholes_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Make memory less nodes become a member of the known nodes.
|
|
||||||
*/
|
|
||||||
for_each_node_mask(node, memory_less_mask)
|
|
||||||
pgdat_insert(mem_data[node].pgdat);
|
|
||||||
|
|
||||||
zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page));
|
zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page));
|
||||||
}
|
}
|
||||||
|
@ -137,12 +137,6 @@ unsigned long __init zone_sizes_init(void)
|
|||||||
int nid, i;
|
int nid, i;
|
||||||
mem_prof_t *mp;
|
mem_prof_t *mp;
|
||||||
|
|
||||||
pgdat_list = NULL;
|
|
||||||
for (nid = num_online_nodes() - 1 ; nid >= 0 ; nid--) {
|
|
||||||
NODE_DATA(nid)->pgdat_next = pgdat_list;
|
|
||||||
pgdat_list = NODE_DATA(nid);
|
|
||||||
}
|
|
||||||
|
|
||||||
for_each_online_node(nid) {
|
for_each_online_node(nid) {
|
||||||
mp = &mem_prof[nid];
|
mp = &mem_prof[nid];
|
||||||
for (i = 0 ; i < MAX_NR_ZONES ; i++) {
|
for (i = 0 ; i < MAX_NR_ZONES ; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user