Thread (15 messages) 15 messages, 5 authors, 2012-12-28

Re: [PATCH 2/3] mm, bootmem: panic in bootmem alloc functions even if slab is available

From: Pekka Enberg <penberg@kernel.org>
Date: 2012-12-27 22:38:54
Also in: lkml

On Fri, Dec 28, 2012 at 12:31 AM, David Rientjes [off-list ref] wrote:
On Fri, 28 Dec 2012, Pekka Enberg wrote:
quoted
On Sun, 23 Dec 2012, Sasha Levin wrote:
quoted
quoted
diff --git a/mm/bootmem.c b/mm/bootmem.c
index 1324cd7..198a92f 100644
--- a/mm/bootmem.c
+++ b/mm/bootmem.c
@@ -763,9 +763,6 @@ void * __init ___alloc_bootmem_node(pg_data_t *pgdat, unsigned long size,
 void * __init __alloc_bootmem_node(pg_data_t *pgdat, unsigned long size,
                                 unsigned long align, unsigned long goal)
 {
-     if (WARN_ON_ONCE(slab_is_available()))
-             return kzalloc_node(size, GFP_NOWAIT, pgdat->node_id);
-
      return  ___alloc_bootmem_node(pgdat, size, align, goal, 0);
 }
I'm not sure what Sasha's patch is trying to do here but the fall-back
is there simply to let the caller know it's calling the bootmem
allocator *too late*. That is, the slab allocator is already up and
running so you're expected to use that.
The __alloc_bootmem_node() variant is intended to panic rather than return
NULL so there are callers that do not check the return value.  I'm
suggesting rather than removing the fallback to the slab allocator to
check the return value and panic() here if kzalloc_node() returns NULL.
The __alloc_bootmem_node_nopanic() variant needs not be changed.
Makes sense. Dropping the fallback completely just makes it more
difficult to find early boot bugs where the bootmem allocator is
called too late.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help