Index: linux-2.6.14-mm2/mm/mempolicy.c =================================================================== --- linux-2.6.14-mm2.orig/mm/mempolicy.c 2005-11-11 13:48:35.000000000 -0800 +++ linux-2.6.14-mm2/mm/mempolicy.c 2005-11-11 13:48:35.000000000 -0800 @@ -188,13 +188,14 @@ static struct mempolicy *mpol_new(int mo } /* Check if we are the only process mapping the page in question */ -static inline int single_mm_mapping(struct mm_struct *mm, +static int single_mm_mapping(struct mm_struct *mm, struct address_space *mapping) { struct vm_area_struct *vma; struct prio_tree_iter iter; int rc = 1; + printk(KERN_ERR "single_mm_mapping: %p %p\n", mm, mapping); spin_lock(&mapping->i_mmap_lock); vma_prio_tree_foreach(vma, &iter, &mapping->i_mmap, 0, ULONG_MAX) if (mm != vma->vm_mm) { @@ -262,6 +263,7 @@ static int check_pte_range(struct vm_are continue; } nid = pfn_to_nid(pfn); + printk(KERN_ERR "check_pte_range: Node=%d nodes=%lx flags=%lx\n", nid, nodes->bits[0], flags); if (!node_isset(nid, *nodes) == !(flags & MPOL_MF_INVERT)) { if (pagelist) { struct page *page = pfn_to_page(pfn); @@ -375,12 +377,15 @@ check_range(struct mm_struct *mm, unsign if (prev && prev->vm_end < vma->vm_start) return ERR_PTR(-EFAULT); } + printk(KERN_ERR "4\n"); if (!is_vm_hugetlb_page(vma) && ((flags & MPOL_MF_STRICT) || ((flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) && vma_migratable(vma) ))) { unsigned long endvma = vma->vm_end; + + printk(KERN_ERR "vma from %lx-%lx\n",vma->vm_start, vma->vm_end); if (endvma > end) endvma = end; if (vma->vm_start > start) @@ -520,12 +525,17 @@ long do_mbind(unsigned long start, unsig int err; LIST_HEAD(pagelist); + printk(KERN_ERR "do_mbind\n"); if ((flags & ~(unsigned long)(MPOL_MF_STRICT | MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) || mode > MPOL_MAX) return -EINVAL; + + printk(KERN_ERR "1\n"); if ((flags & MPOL_MF_MOVE_ALL) && !capable(CAP_SYS_RESOURCE)) return -EPERM; + + printk(KERN_ERR "2\n"); if (start & ~PAGE_MASK) return -EINVAL; @@ -535,14 +545,17 @@ long do_mbind(unsigned long start, unsig len = (len + PAGE_SIZE - 1) & PAGE_MASK; end = start + len; + printk(KERN_ERR "3\n"); if (end < start) return -EINVAL; if (end == start) return 0; + printk(KERN_ERR "4\n"); if (mpol_check_policy(mode, nmask)) return -EINVAL; + printk(KERN_ERR "5\n"); new = mpol_new(mode, nmask); if (IS_ERR(new)) return PTR_ERR(new); @@ -714,6 +727,7 @@ int migrate_to_node(struct mm_struct *mm LIST_HEAD(pagelist); int err = 0; + printk(KERN_ERR "migrate_to_node %p %d->%d %x\n",mm, source, dest,flags); nodes_clear(nmask); node_set(source, nmask); @@ -728,7 +742,8 @@ int migrate_to_node(struct mm_struct *mm if (!list_empty(&pagelist)) putback_lru_pages(&pagelist); - } + } else + printk(KERN_ERR "pagelist empty\n"); return err; } @@ -746,6 +761,7 @@ int do_migrate_pages(struct mm_struct *m nodemask_t tmp; int busy = 0; + printk("do_migrate_pages\n"); down_read(&mm->mmap_sem); /* Find a 'source' bit set in 'tmp' whose corresponding 'dest' @@ -887,6 +903,7 @@ asmlinkage long sys_mbind(unsigned long nodemask_t nodes; int err; + printk(KERN_ERR "sys_mbind\n"); err = get_nodes(&nodes, nmask, maxnode); if (err) return err; Index: linux-2.6.14-mm2/Makefile =================================================================== --- linux-2.6.14-mm2.orig/Makefile 2005-11-11 12:26:58.000000000 -0800 +++ linux-2.6.14-mm2/Makefile 2005-11-11 13:48:35.000000000 -0800 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 14 -EXTRAVERSION =-mm2 +EXTRAVERSION =-mm2-mig NAME=Affluent Albatross # *DOCUMENTATION* Index: linux-2.6.14-mm2/mm/vmscan.c =================================================================== --- linux-2.6.14-mm2.orig/mm/vmscan.c 2005-11-11 13:48:35.000000000 -0800 +++ linux-2.6.14-mm2/mm/vmscan.c 2005-11-11 13:48:35.000000000 -0800 @@ -769,6 +769,7 @@ int migrate_page_remove_references(struc __put_page(page); write_unlock_irq(&mapping->tree_lock); + return 0; } EXPORT_SYMBOL(migrate_page_remove_references); @@ -862,6 +863,7 @@ int migrate_pages(struct list_head *from int swapwrite = current->flags & PF_SWAPWRITE; int rc = 0; + printk(KERN_ERR "migrate pages\n"); if (!swapwrite) current->flags |= PF_SWAPWRITE; Index: linux-2.6.14-mm2/mm/rmap.c =================================================================== --- linux-2.6.14-mm2.orig/mm/rmap.c 2005-11-11 13:48:35.000000000 -0800 +++ linux-2.6.14-mm2/mm/rmap.c 2005-11-11 13:48:35.000000000 -0800 @@ -587,6 +587,7 @@ static int try_to_unmap_one(struct page spin_unlock(&mmlist_lock); } set_pte_at(mm, address, pte, swp_entry_to_pte(entry)); + printk(KERN_ERR "swap pte installed at %p %ld %p\n", page, address, pte); BUG_ON(pte_file(*pte)); dec_mm_counter(mm, anon_rss); } else