All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Trivial fix in __alloc_bootmem_core() when there is no free page in first node's memory
@ 2005-12-07  1:53 Haren Myneni
  0 siblings, 0 replies; only message in thread
From: Haren Myneni @ 2005-12-07  1:53 UTC (permalink / raw)
  To: linux-kernel, linuxppc64-dev

[-- Attachment #1: Type: text/plain, Size: 910 bytes --]

Hi,
    Hitting BUG_ON() in __alloc_bootmem_core() when there is no free 
page available in the first node's memory. For the case of kdump on 
PPC64 (Power 4 machine), the captured kernel is used two memory regions 
- memory for TCE tables (tce-base and tce-size at top of RAM and 
reserved) and captured kernel memory region (crashk_base and 
crashk_size). Since we reserve the memory for the first node, we should 
be returning from __alloc_bootmem_core() to search for the next node 
(pg_dat).

Currently, find_next_zero_bit() is returning the n^th bit (eidx) when 
there is no free page. Then, test_bit() is failed since we set 0xff only 
for the actual size initially (init_bootmem_core()) even though rounded 
up to one page for bdata->node_bootmem_map. We are hitting the BUG_ON 
after failing to enter second "for" loop.

Please apply.

Thanks
Haren

Signed-off-by: Haren Myneni <haren@us.ibm.com>





[-- Attachment #2: bootmem_bug_on_fix.patch --]
[-- Type: text/x-patch, Size: 413 bytes --]

--- 2.6.15-rc5-git1/mm/bootmem.c.orig	2005-12-14 21:28:46.000000000 -0800
+++ 2.6.15-rc5-git1/mm/bootmem.c	2005-12-14 21:35:54.000000000 -0800
@@ -204,6 +204,8 @@ restart_scan:
 		unsigned long j;
 		i = find_next_zero_bit(bdata->node_bootmem_map, eidx, i);
 		i = ALIGN(i, incr);
+		if (i >= eidx)
+			break;
 		if (test_bit(i, bdata->node_bootmem_map))
 			continue;
 		for (j = i + 1; j < i + areasize; ++j) {

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-12-07  1:54 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-12-07  1:53 [PATCH] Trivial fix in __alloc_bootmem_core() when there is no free page in first node's memory Haren Myneni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.