Messages in this thread | | | Date | Sun, 29 Oct 2006 20:17:55 +1100 | From | Nick Piggin <> | Subject | Re: Slab panic on 2.6.19-rc3-git5 (-git4 was OK) |
| |
Andrew Morton wrote: > On Sat, 28 Oct 2006 22:57:48 -0700 > "Martin J. Bligh" <mbligh@google.com> wrote: > > >>-git4 was fine. -git5 is broken (on PPC64 blade) >> >>As -rc2-mm2 seemed fine on this box, I'm guessing it's something >>that didn't go via Andrew ;-( Looks like it might be something >>JFS or slab specific. Bigger PPC64 box with different config >>was OK though. >> >>Full log is here: http://test.kernel.org/abat/59046/debug/console.log >>Good -git4 run: http://test.kernel.org/abat/58997/debug/console.log >> >>kernel BUG in cache_grow at mm/slab.c:2705! > > > This? > > --- 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
-- SUSE Labs, Novell Inc. Send instant messages to your online friends http://au.messenger.yahoo.com
- 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/
| |