summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorNishanth Aravamudan <nacc@us.ibm.com>2006-08-31 21:27:53 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-09-01 11:39:10 -0700
commit3b98b087fc2daab67518d2baa8aef19a6ad82723 (patch)
treea7defc8fa53b2023affc072cd20c4f4734e4395d /fs
parent1678df37be8abbb381becdc40242ed915e775550 (diff)
downloadlinux-3b98b087fc2daab67518d2baa8aef19a6ad82723.tar.gz
linux-3b98b087fc2daab67518d2baa8aef19a6ad82723.tar.bz2
linux-3b98b087fc2daab67518d2baa8aef19a6ad82723.zip
[PATCH] fix NUMA interleaving for huge pages
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@us.ibm.com> Signed-off-by: Adam Litke <agl@us.ibm.com> Cc: Andi Kleen <ak@muc.de> Acked-by: Christoph Lameter <clameter@engr.sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
0 files changed, 0 insertions, 0 deletions