Index: linux-2.6.16-rc2/mm/hugetlb.c =================================================================== --- linux-2.6.16-rc2.orig/mm/hugetlb.c 2006-02-02 22:03:08.000000000 -0800 +++ linux-2.6.16-rc2/mm/hugetlb.c 2006-02-03 15:29:58.000000000 -0800 @@ -44,11 +44,14 @@ static struct page *dequeue_huge_page(st { int nid = numa_node_id(); struct page *page = NULL; - struct zonelist *zonelist = huge_zonelist(vma, address); + struct zonelist *zonelist; struct zone **z; + printk("dequeue_huge_page: vma=%p address=%lx\n", vma, address); + zonelist = huge_zonelist(vma, address); for (z = zonelist->zones; *z; z++) { nid = (*z)->zone_pgdat->node_id; + printk("node=%d z=%p\n", nid, *z); if (cpuset_zone_allowed(*z, GFP_HIGHUSER) && !list_empty(&hugepage_freelists[nid])) break; @@ -61,6 +64,7 @@ static struct page *dequeue_huge_page(st free_huge_pages--; free_huge_pages_node[nid]--; } + printk("dequeue_huge_page returns %p\n",page); return page; } @@ -97,10 +101,12 @@ struct page *alloc_huge_page(struct vm_a struct page *page; int i; + printk(KERN_ERR "alloc_huge_page: vma=%p addr=%lx\n", vma, addr); spin_lock(&hugetlb_lock); page = dequeue_huge_page(vma, addr); if (!page) { spin_unlock(&hugetlb_lock); + printk(KERN_ERR "dequeue page failed\n"); return NULL; } spin_unlock(&hugetlb_lock); @@ -108,6 +114,7 @@ struct page *alloc_huge_page(struct vm_a page[1].mapping = (void *)free_huge_page; for (i = 0; i < (HPAGE_SIZE/PAGE_SIZE); ++i) clear_highpage(&page[i]); + printk(KERN_ERR "alloc_huge_page returns %p\n",page); return page; } @@ -428,6 +435,9 @@ int hugetlb_no_page(struct mm_struct *mm struct address_space *mapping; pte_t new_pte; + printk(KERN_ERR "hugetlb_no_page: mm=%p vma=%p address=%lx ptep=%p write=%d\n", + mm, vma, address, ptep, write_access); + mapping = vma->vm_file->f_mapping; idx = ((address - vma->vm_start) >> HPAGE_SHIFT) + (vma->vm_pgoff >> (HPAGE_SHIFT - PAGE_SHIFT)); @@ -443,6 +453,7 @@ retry: goto out; page = alloc_huge_page(vma, address); if (!page) { + printk(KERN_ERR "alloc_huge_page failed\n"); hugetlb_put_quota(mapping); goto out; } @@ -484,6 +495,7 @@ retry: spin_unlock(&mm->page_table_lock); unlock_page(page); out: + printk(KERN_ERR "hugetlb_do_no_page returns %d\n", ret); return ret; backout: