kernel-ark/mm
Mel Gorman 54a6eb5c47 mm: use two zonelist that are filtered by GFP mask
Currently a node has two sets of zonelists, one for each zone type in the
system and a second set for GFP_THISNODE allocations.  Based on the zones
allowed by a gfp mask, one of these zonelists is selected.  All of these
zonelists consume memory and occupy cache lines.

This patch replaces the multiple zonelists per-node with two zonelists.  The
first contains all populated zones in the system, ordered by distance, for
fallback allocations when the target/preferred node has no free pages.  The
second contains all populated zones in the node suitable for GFP_THISNODE
allocations.

An iterator macro is introduced called for_each_zone_zonelist() that interates
through each zone allowed by the GFP flags in the selected zonelist.

Signed-off-by: Mel Gorman <mel@csn.ul.ie>
Acked-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Lee Schermerhorn <lee.schermerhorn@hp.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: Christoph Lameter <clameter@sgi.com>
Cc: Hugh Dickins <hugh@veritas.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-04-28 08:58:18 -07:00
..
allocpercpu.c
backing-dev.c
bootmem.c mm: allow reserve_bootmem() cross nodes 2008-04-26 22:51:08 +02:00
bounce.c
dmapool.c
fadvise.c
filemap_xip.c
filemap.c
fremap.c
highmem.c
hugetlb.c mm: use two zonelist that are filtered by GFP mask 2008-04-28 08:58:18 -07:00
internal.h
Kconfig
maccess.c
madvise.c
Makefile
memcontrol.c
memory_hotplug.c hotplug-memory: make online_page() common 2008-04-28 08:58:17 -07:00
memory.c mm: remove nopage 2008-04-28 08:58:18 -07:00
mempolicy.c mm: introduce node_zonelist() for accessing the zonelist for a GFP mask 2008-04-28 08:58:18 -07:00
mempool.c
migrate.c
mincore.c mm: remove nopage 2008-04-28 08:58:18 -07:00
mlock.c
mmap.c mmap_region: cleanup the final vma_merge() related code 2008-04-28 08:58:18 -07:00
mmzone.c
mprotect.c
mremap.c
msync.c
nommu.c
oom_kill.c mm: use two zonelist that are filtered by GFP mask 2008-04-28 08:58:18 -07:00
page_alloc.c mm: use two zonelist that are filtered by GFP mask 2008-04-28 08:58:18 -07:00
page_io.c
page_isolation.c
page-writeback.c
pagewalk.c mm: fix possible off-by-one in walk_pte_range() 2008-04-28 08:58:16 -07:00
pdflush.c
prio_tree.c
quicklist.c
readahead.c
rmap.c mm: remove nopage 2008-04-28 08:58:18 -07:00
shmem_acl.c
shmem.c
slab.c mm: use two zonelist that are filtered by GFP mask 2008-04-28 08:58:18 -07:00
slob.c
slub.c mm: use two zonelist that are filtered by GFP mask 2008-04-28 08:58:18 -07:00
sparse-vmemmap.c
sparse.c hotplug memory remove: generic __remove_pages() support 2008-04-28 08:58:17 -07:00
swap_state.c
swap.c
swapfile.c
thrash.c
tiny-shmem.c
truncate.c fix invalidate_inode_pages2_range() to not clear ret 2008-04-28 08:58:18 -07:00
util.c
vmalloc.c
vmscan.c mm: use two zonelist that are filtered by GFP mask 2008-04-28 08:58:18 -07:00
vmstat.c mm: remember what the preferred zone is for zone_statistics 2008-04-28 08:58:18 -07:00