linux/include
Paul Jackson 74cb21553f [PATCH] cpuset: numa_policy_rebind cleanup
Cleanup, reorganize and make more robust the mempolicy.c code to rebind
mempolicies relative to the containing cpuset after a tasks memory placement
changes.

The real motivator for this cleanup patch is to lay more groundwork for the
upcoming patch to correctly rebind NUMA mempolicies that are attached to vma's
after the containing cpuset memory placement changes.

NUMA mempolicies are constrained by the cpuset their task is a member of.
When either (1) a task is moved to a different cpuset, or (2) the 'mems'
mems_allowed of a cpuset is changed, then the NUMA mempolicies have embedded
node numbers (for MPOL_BIND, MPOL_INTERLEAVE and MPOL_PREFERRED) that need to
be recalculated, relative to their new cpuset placement.

The old code used an unreliable method of determining what was the old
mems_allowed constraining the mempolicy.  It just looked at the tasks
mems_allowed value.  This sort of worked with the present code, that just
rebinds the -task- mempolicy, and leaves any -vma- mempolicies broken,
referring to the old nodes.  But in an upcoming patch, the vma mempolicies
will be rebound as well.  Then the order in which the various task and vma
mempolicies are updated will no longer be deterministic, and one can no longer
count on the task->mems_allowed holding the old value for as long as needed.
It's not even clear if the current code was guaranteed to work reliably for
task mempolicies.

So I added a mems_allowed field to each mempolicy, stating exactly what
mems_allowed the policy is relative to, and updated synchronously and reliably
anytime that the mempolicy is rebound.

Also removed a useless wrapper routine, numa_policy_rebind(), and had its
caller, cpuset_update_task_memory_state(), call directly to the rewritten
policy_rebind() routine, and made that rebind routine extern instead of
static, and added a "mpol_" prefix to its name, making it
mpol_rebind_policy().

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-08 20:13:44 -08:00
..
acpi [ACPI] increase owner_id limit to 64 from 32 2005-12-21 04:52:16 -05:00
asm-alpha [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-arm [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-arm26 [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-cris [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-frv [PATCH] frv: miscellaneous changes 2006-01-08 20:13:38 -08:00
asm-generic [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-h8300 [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-i386 [PATCH] Kill L1_CACHE_SHIFT_MAX 2006-01-08 20:13:39 -08:00
asm-ia64 [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-m32r [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-m68k [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-m68knommu [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-mips [PATCH] Kill L1_CACHE_SHIFT_MAX 2006-01-08 20:13:39 -08:00
asm-parisc [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-powerpc [PATCH] Kill L1_CACHE_SHIFT_MAX 2006-01-08 20:13:39 -08:00
asm-ppc [PATCH] ppc32: Allows compilation of a MPC52xx kernel without PCI 2006-01-06 08:33:31 -08:00
asm-s390 [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-sh [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-sh64 [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-sparc [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-sparc64 [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-um [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-v850 [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-x86_64 [PATCH] Kill L1_CACHE_SHIFT_MAX 2006-01-08 20:13:39 -08:00
asm-xtensa [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
keys [PATCH] Keys: Remove key duplication 2006-01-06 08:33:29 -08:00
linux [PATCH] cpuset: numa_policy_rebind cleanup 2006-01-08 20:13:44 -08:00
math-emu
media Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6 2006-01-06 15:25:08 -08:00
mtd [MTD] user-abi: Clean up trailing white spaces 2005-11-07 14:43:11 +01:00
net [IPV4]: make ip_fragment() static 2006-01-07 13:23:39 -08:00
pcmcia [PATCH] pcmcia: unify attach, EVENT_CARD_INSERTION handlers into one probe callback 2006-01-06 00:03:24 +01:00
rdma [IB] uverbs: have kernel return QP capabilities 2005-11-10 10:22:50 -08:00
rxrpc [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
scsi Merge branch 'post-2.6.15' of git://brick.kernel.dk/data/git/linux-2.6-block 2006-01-06 09:01:25 -08:00
sound [ALSA] Revert the nested-device patch 2006-01-04 10:13:48 +01:00
video [PATCH] drivers/video: Replace custom macro with isdigit() 2005-09-13 08:22:33 -07:00