Messages in this thread Patch in this message |  | | | Date | Thu, 3 Nov 2005 21:31:20 -0800 (PST) | | From | Paul Jackson <> | | Subject | [PATCH 2/5] cpuset: rebind numa vma mempolicy |
| |
When automatically rebinding a NUMA mempolicy of a task that is moved to a different cpuset, or of the tasks in a cpuset whose memory placement 'mems' is changed, this patch adds the code to rebind the mempolicies of the vma's in the tasks memory space as well.
Signed-off-by: Paul Jackson <pj@sgi.com>
--- mm/mempolicy.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) --- 2.6.14-rc5-mm1-cpuset-patches.orig/mm/mempolicy.c 2005-10-29 21:22:39.068225953 -0700 +++ 2.6.14-rc5-mm1-cpuset-patches/mm/mempolicy.c 2005-10-29 21:30:56.420406908 -0700 @@ -1262,10 +1262,19 @@ static void rebind_policy(struct mempoli /* * Someone moved this task to different nodes. Fixup mempolicies. * - * TODO - fixup current->mm->vma and shmfs/tmpfs/hugetlbfs policies as well, - * once we have a cpuset mechanism to mark which cpuset subtree is migrating. + * TODO - fixup shmfs/tmpfs/hugetlbfs policies as well. */ void numa_policy_rebind(const nodemask_t *old, const nodemask_t *new) { + struct mm_struct *mm = current->mm; + + if (mm) { + struct vm_area_struct *vma; + + down_write(&mm->mmap_sem); + for (vma = mm->mmap; vma; vma = vma->vm_next) + rebind_policy(vma->vm_policy, old, new); + up_write(&mm->mmap_sem); + } rebind_policy(current->mempolicy, old, new); } -- I won't rest till it's the best ... Programmer, Linux Scalability Paul Jackson <pj@sgi.com> 1.650.933.1373 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |