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
fremap.c
highmem.c
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
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
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
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
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
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
vmalloc.c
vmscan.c [PATCH] vm: try_to_free_pages unused argument 2005-06-21 18:46:17 -07:00