The patch titled fix NUMA interleaving for huge pages has been removed from the -mm tree. Its filename is fix-numa-interleaving-for-huge-pages.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: fix NUMA interleaving for huge pages From: Nishanth Aravamudan <nacc@xxxxxxxxxx> Since vma->vm_pgoff is in units of smallpages, VMAs for huge pages have the lower HPAGE_SHIFT - PAGE_SHIFT bits always cleared, which results in badd offsets to the interleave functions. Take this difference from small pages into account when calculating the offset. This does add a 0-bit shift into the small-page path (via alloc_page_vma()), but I think that is negligible. Also add a BUG_ON to prevent the offset from growing due to a negative right-shift, which probably shouldn't be allowed anyways. Tested on an 8-memory node ppc64 NUMA box and got the interleaving I expected. Signed-off-by: Nishanth Aravamudan <nacc@xxxxxxxxxx> Signed-off-by: Adam Litke <agl@xxxxxxxxxx> Cc: Andi Kleen <ak@xxxxxx> Acked-by: Christoph Lameter <clameter@xxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- mm/mempolicy.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff -puN mm/mempolicy.c~fix-numa-interleaving-for-huge-pages mm/mempolicy.c --- a/mm/mempolicy.c~fix-numa-interleaving-for-huge-pages +++ a/mm/mempolicy.c @@ -1176,7 +1176,15 @@ static inline unsigned interleave_nid(st if (vma) { unsigned long off; - off = vma->vm_pgoff; + /* + * for small pages, there is no difference between + * shift and PAGE_SHIFT, so the bit-shift is safe. + * for huge pages, since vm_pgoff is in units of small + * pages, we need to shift off the always 0 bits to get + * a useful offset. + */ + BUG_ON(shift < PAGE_SHIFT); + off = vma->vm_pgoff >> (shift - PAGE_SHIFT); off += (addr - vma->vm_start) >> shift; return offset_il_node(pol, vma, off); } else _ Patches currently in -mm which might be from nacc@xxxxxxxxxx are origin.patch -- VGER BF report: U 0.5 - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html