Messages in this thread | | | Date | Wed, 4 Aug 2010 20:35:59 +0300 | Subject | Re: Using Bootmem for large DMA buffers in the presence of the slab allocator | From | Pekka Enberg <> |
| |
On Wed, 4 Aug 2010, Peter Crosthwaite wrote: >> Because the buffer was too large for kmalloc, the kmalloc call would >> fail. I traced the alloc_bootmem_low_pages() call further and >> discovered that since the kmalloc call was failing, it was falling >> back to alloc_bootmem_core(). So does this mean that the bootmem >> allocator is trying to allocate memory while the slab allocator is up >> and running? And is this supposed to work?
On Wed, Aug 4, 2010 at 6:40 PM, Christoph Lameter <cl@linux-foundation.org> wrote: > The bootmem allocator should not work when slab is fully up. However, > there is a grey period where the page allocator is not fully functional > yet but the slab allocator is mostly working.
Yup, the WARN_ON there means that someone is calling the bootmem allocator after slab is up and running and the call-site needs to be fixed. The slab fallback is there for convenience so that we don't crash the kernel during bootup and it's not supposed to work for large allocations.
Pekka
| |