[PATCH] fix NUMA interleaving for huge pages (was RE: libnuma interleaving oddness)

Adam Litke agl at us.ibm.com
Fri Sep 1 02:08:05 EST 2006


On Thu, 2006-08-31 at 09:00 -0700, Nishanth Aravamudan wrote:
> 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 at us.ibm.com>

Acked-by: Adam Litke <agl at us.ibm.com>

-- 
Adam Litke - (agl at us.ibm.com)
IBM Linux Technology Center




More information about the Linuxppc-dev mailing list