On Thu, 31 May 2012 16:09:15 -0400 KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxx> wrote: > > --- a/mm/shmem.c > > +++ b/mm/shmem.c > > @@ -929,7 +929,7 @@ static struct page *shmem_alloc_page(gfp_t gfp, > > /* > > * alloc_page_vma() will drop the shared policy reference > > */ > > - return alloc_page_vma(gfp,&pvma, 0); > > + return alloc_page_vma(gfp,&pvma, info->node_offset<< PAGE_SHIFT ); > > 3rd argument of alloc_page_vma() is an address. This is type error. Well, it's an unsigned long... But yes, it is conceptually wrong and *looks* weird. I think we can address that by overcoming our peculair aversion to documenting our code, sigh. This? --- a/mm/shmem.c~tmpfs-implement-numa-node-interleaving-fix +++ a/mm/shmem.c @@ -927,9 +927,12 @@ static struct page *shmem_alloc_page(gfp pvma.vm_policy = mpol_shared_policy_lookup(&info->policy, index); /* - * alloc_page_vma() will drop the shared policy reference + * alloc_page_vma() will drop the shared policy reference. + * + * To avoid allocating all tmpfs pages on node 0, we fake up a virtual + * address based on this file's predetermined preferred node. */ - return alloc_page_vma(gfp, &pvma, info->node_offset << PAGE_SHIFT ); + return alloc_page_vma(gfp, &pvma, info->node_offset << PAGE_SHIFT); } #else /* !CONFIG_NUMA */ #ifdef CONFIG_TMPFS _ -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>