• L
    memoryless nodes: fixup uses of node_online_map in generic code · 37b07e41
    Lee Schermerhorn 提交于
    Here's a cut at fixing up uses of the online node map in generic code.
    
    mm/shmem.c:shmem_parse_mpol()
    
    	Ensure nodelist is subset of nodes with memory.
    	Use node_states[N_HIGH_MEMORY] as default for missing
    	nodelist for interleave policy.
    
    mm/shmem.c:shmem_fill_super()
    
    	initialize policy_nodes to node_states[N_HIGH_MEMORY]
    
    mm/page-writeback.c:highmem_dirtyable_memory()
    
    	sum over nodes with memory
    
    mm/page_alloc.c:zlc_setup()
    
    	allowednodes - use nodes with memory.
    
    mm/page_alloc.c:default_zonelist_order()
    
    	average over nodes with memory.
    
    mm/page_alloc.c:find_next_best_node()
    
    	skip nodes w/o memory.
    	N_HIGH_MEMORY state mask may not be initialized at this time,
    	unless we want to depend on early_calculate_totalpages() [see
    	below].  Will ZONE_MOVABLE ever be configurable?
    
    mm/page_alloc.c:find_zone_movable_pfns_for_nodes()
    
    	spread kernelcore over nodes with memory.
    
    	This required calling early_calculate_totalpages()
    	unconditionally, and populating N_HIGH_MEMORY node
    	state therein from nodes in the early_node_map[].
    	If we can depend on this, we can eliminate the
    	population of N_HIGH_MEMORY mask from __build_all_zonelists()
    	and use the N_HIGH_MEMORY mask in find_next_best_node().
    
    mm/mempolicy.c:mpol_check_policy()
    
    	Ensure nodes specified for policy are subset of
    	nodes with memory.
    
    [akpm@linux-foundation.org: fix warnings]
    Signed-off-by: NLee Schermerhorn <lee.schermerhorn@hp.com>
    Acked-by: NChristoph Lameter <clameter@sgi.com>
    Cc: Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    37b07e41
mempolicy.c 50.4 KB