Messages in this thread | | | From | Giridhar Pemmasani <> | Subject | Re: Slab panic on 2.6.19-rc3-git5 (-git4 was OK) | Date | Sun, 29 Oct 2006 15:53:12 -0500 |
| |
Nick Piggin wrote:
> Andrew Morton wrote: >> --- a/mm/vmalloc.c~__vmalloc_area_node-fix >> +++ a/mm/vmalloc.c >> @@ -428,7 +428,8 @@ void *__vmalloc_area_node(struct vm_stru >> area->nr_pages = nr_pages; >> /* Please note that the recursion is strictly bounded. */ >> if (array_size > PAGE_SIZE) { >> - pages = __vmalloc_node(array_size, gfp_mask, PAGE_KERNEL, node); >> + pages = __vmalloc_node(array_size, gfp_mask & ~__GFP_HIGHMEM, >> + PAGE_KERNEL, node); >> area->flags |= VM_VPAGES; >> } else { >> pages = kmalloc_node(array_size, > > Don't you actually *want* the page array to be allocated from highmem? So > the gfp mask here should be just for whether we're allowed to sleep / > reclaim (ie gfp_mask & ~(__GFP_DMA|__GFP_DMA32) | (__GFP_HIGHMEM))? > > Slab allocations should be (gfp_mask & > ~(__GFP_DMA|__GFP_DMA32|__GFP_HIGHMEM)), which you could mask in > __get_vm_area_node >
Since gfp_mask there would also have GFP_ZERO, we need to mask off that too. How about my earlier suggestion of masking off flags in __get_vm_area_node with GFP_LEVEL_MASK?
Giri
PS: I am not sure if this mail gets to all recipients in the original thread - I am not subscribed to lkml and I haven't found a way to reply to all people and the group.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |