linux/mm
Christoph Lameter 5fcbb23050 [PATCH] Remove policy contextualization from mbind
Policy contextualization is only useful for task based policies and not for
vma based policies.  It may be useful to define allowed nodes that are not
accessible from this thread because other threads may have access to these
nodes.  Without this patch strange memory policy situations may cause an
application to fail with out of memory.

Example:

Let's say we have two threads A and B that share the same address space and
a huge array computational array X.

Thread A is restricted by its cpuset to nodes 0 and 1 and thread B is
restricted by its cpuset to nodes 2 and 3.

Thread A now wants to restrict allocations to the first node and thus
applies a BIND policy on X to node 0 and 2.  The cpuset limits this to node
0.  Thus pages for X must be allocated on node 0 now.

Thread B now touches a page that has never been used in X and faults in a
page.  According to the BIND policy of the vma for X the page must be
allocated on page 0.  However, the cpuset of B does not allow allocation on
0 and 1.  Now the application fails in alloc_pages with out of memory.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-29 21:40:45 -07:00
..
bootmem.c [PATCH] core remove PageReserved 2005-10-29 21:40:39 -07:00
fadvise.c [PATCH] xip: madvice/fadvice: execute in place 2005-06-24 00:06:42 -07:00
filemap_xip.c [PATCH] mm: rmap with inner ptlock 2005-10-29 21:40:41 -07:00
filemap.c [PATCH] mm: update comments to pte lock 2005-10-29 21:40:42 -07:00
filemap.h [PATCH] xip: reduce code duplication 2005-06-24 00:06:41 -07:00
fremap.c [PATCH] mm: ptd_alloc take ptlock 2005-10-29 21:40:40 -07:00
highmem.c [PATCH] gfp_t: the rest 2005-10-28 08:16:51 -07:00
hugetlb.c [PATCH] hugetlb: demand fault handler 2005-10-29 21:40:43 -07:00
internal.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig [PATCH] memory hotplug: sysfs and add/remove functions 2005-10-29 21:40:44 -07:00
madvise.c [PATCH] core remove PageReserved 2005-10-29 21:40:39 -07:00
Makefile [PATCH] memory hotplug: sysfs and add/remove functions 2005-10-29 21:40:44 -07:00
memory_hotplug.c [PATCH] memory hotplug: call setup_per_zone_pages_min after hotplug 2005-10-29 21:40:44 -07:00
memory.c [PATCH] .text page fault SMP scalability optimization 2005-10-29 21:40:43 -07:00
mempolicy.c [PATCH] Remove policy contextualization from mbind 2005-10-29 21:40:45 -07:00
mempool.c [PATCH] gfp_t: mm/* (easy parts) 2005-10-28 08:16:47 -07:00
mincore.c [PATCH] freepgt: sys_mincore ignore FIRST_USER_PGD_NR 2005-04-19 13:29:20 -07:00
mlock.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mmap.c [PATCH] mm: unmap_vmas with inner ptlock 2005-10-29 21:40:41 -07:00
mprotect.c [PATCH] mm: pte_offset_map_lock loops 2005-10-29 21:40:40 -07:00
mremap.c [PATCH] mm: split page table lock 2005-10-29 21:40:42 -07:00
msync.c [PATCH] mm: pte_offset_map_lock loops 2005-10-29 21:40:40 -07:00
nommu.c [PATCH] mm: follow_page with inner ptlock 2005-10-29 21:40:41 -07:00
oom_kill.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
page_alloc.c [PATCH] memory hotplug: sysfs and add/remove functions 2005-10-29 21:40:44 -07:00
page_io.c [PATCH] mm: split page table lock 2005-10-29 21:40:42 -07:00
page-writeback.c [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
pdflush.c [PATCH] Cleanup patch for process freezing 2005-06-25 17:10:13 -07:00
prio_tree.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
readahead.c [PATCH] readahead: reset cache_hit earlier 2005-09-07 16:57:25 -07:00
rmap.c [PATCH] mm: update comments to pte lock 2005-10-29 21:40:42 -07:00
shmem.c [PATCH] mm: split page table lock 2005-10-29 21:40:42 -07:00
slab.c [PATCH] slab: add additional debugging to detect slabs from the wrong node 2005-10-29 21:40:36 -07:00
sparse.c [PATCH] memory hotplug: move section_mem_map alloc to sparse.c 2005-10-29 21:40:44 -07:00
swap_state.c [PATCH] mm: update comments to pte lock 2005-10-29 21:40:42 -07:00
swap.c [PATCH] mm: split page table lock 2005-10-29 21:40:42 -07:00
swapfile.c [PATCH] mm: split page table lock 2005-10-29 21:40:42 -07:00
thrash.c [PATCH] swaptoken tuning 2005-10-29 21:40:35 -07:00
tiny-shmem.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
truncate.c [PATCH] DocBook: fix some descriptions 2005-05-01 08:59:26 -07:00
vmalloc.c [PATCH] mm: init_mm without ptlock 2005-10-29 21:40:40 -07:00
vmscan.c [PATCH] mm: split page table lock 2005-10-29 21:40:42 -07:00