kernel-ark/mm
Andy Whitcroft 29751f6991 [PATCH] sparsemem hotplug base
Make sparse's initalization be accessible at runtime.  This allows sparse
mappings to be created after boot in a hotplug situation.

This patch is separated from the previous one just to give an indication how
much of the sparse infrastructure is *just* for hotplug memory.

The section_mem_map doesn't really store a pointer.  It stores something that
is convenient to do some math against to get a pointer.  It isn't valid to
just do *section_mem_map, so I don't think it should be stored as a pointer.

There are a couple of things I'd like to store about a section.  First of all,
the fact that it is !NULL does not mean that it is present.  There could be
such a combination where section_mem_map *is* NULL, but the math gets you
properly to a real mem_map.  So, I don't think that check is safe.

Since we're storing 32-bit-aligned structures, we have a few bits in the
bottom of the pointer to play with.  Use one bit to encode whether there's
really a mem_map there, and the other one to tell whether there's a valid
section there.  We need to distinguish between the two because sometimes
there's a gap between when a section is discovered to be present and when we
can get the mem_map for it.

Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Bob Picco <bob.picco@hp.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-23 09:45:05 -07:00
..
bootmem.c [PATCH] sparsemem memory model 2005-06-23 09:45:04 -07:00
fadvise.c
filemap.c [PATCH] broken fault_in_pages_readable call in generic_file_buffered_write() 2005-06-06 14:42:23 -07:00
fremap.c
highmem.c [PATCH] count bounce buffer pages in vmstat 2005-05-01 08:58:37 -07:00
hugetlb.c [PATCH] Hugepage consolidation 2005-06-21 18:46:15 -07:00
internal.h
Kconfig [PATCH] sparsemem memory model 2005-06-23 09:45:04 -07:00
madvise.c [PATCH] madvise: merge the maps 2005-06-21 18:46:13 -07:00
Makefile [PATCH] sparsemem memory model 2005-06-23 09:45:04 -07:00
memory.c [PATCH] sparsemem memory model 2005-06-23 09:45:04 -07:00
mempolicy.c [PATCH] mbind: check_range use standard ptwalk 2005-06-21 18:46:19 -07:00
mempool.c [PATCH] use smp_mb/wmb/rmb where possible 2005-05-01 08:58:47 -07:00
mincore.c
mlock.c
mmap.c [PATCH] mmap topdown fix for large stack limit, large allocation 2005-06-21 18:46:16 -07:00
mprotect.c
mremap.c [PATCH] mm acct accounting fix 2005-05-17 07:59:12 -07:00
msync.c [PATCH] msync: check pte dirty earlier 2005-06-21 18:46:21 -07:00
nommu.c [PATCH] Avoiding mmap fragmentation 2005-06-21 18:46:16 -07:00
oom_kill.c [PATCH] add OOM debug 2005-06-21 18:46:17 -07:00
page_alloc.c [PATCH] sparsemem hotplug base 2005-06-23 09:45:05 -07:00
page_io.c
page-writeback.c [PATCH] DocBook: fix some descriptions 2005-05-01 08:59:26 -07:00
pdflush.c
prio_tree.c
readahead.c
rmap.c [PATCH] can_share_swap_page: use page_mapcount 2005-06-21 18:46:21 -07:00
shmem.c [PATCH] shmem: restore superblock info 2005-06-21 18:46:18 -07:00
slab.c [PATCH] Periodically drain non local pagesets 2005-06-21 18:46:18 -07:00
sparse.c [PATCH] sparsemem hotplug base 2005-06-23 09:45:05 -07:00
swap_state.c [PATCH] mm: use __GFP_NOMEMALLOC 2005-05-01 08:58:37 -07:00
swap.c
swapfile.c [PATCH] can_share_swap_page: use page_mapcount 2005-06-21 18:46:21 -07:00
thrash.c
tiny-shmem.c
truncate.c [PATCH] DocBook: fix some descriptions 2005-05-01 08:59:26 -07:00
vmalloc.c [PATCH] x86_64: Fixed guard page handling again in iounmap 2005-05-20 15:48:20 -07:00
vmscan.c [PATCH] vm: try_to_free_pages unused argument 2005-06-21 18:46:17 -07:00