linux-IllusionX/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
fremap.c
highmem.c
hugetlb.c
internal.h
Kconfig [PATCH] sparsemem memory model 2005-06-23 09:45:04 -07:00
madvise.c
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
mempool.c
mincore.c
mlock.c
mmap.c
mprotect.c
mremap.c
msync.c [PATCH] msync: check pte dirty earlier 2005-06-21 18:46:21 -07:00
nommu.c
oom_kill.c
page-writeback.c
page_alloc.c [PATCH] sparsemem hotplug base 2005-06-23 09:45:05 -07:00
page_io.c
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
slab.c
sparse.c [PATCH] sparsemem hotplug base 2005-06-23 09:45:05 -07:00
swap.c
swap_state.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
vmalloc.c
vmscan.c