Yinghai Lu
b8ab9f8202
x86,nobootmem: make alloc_bootmem_node fall back to other node when 32bit numa is used
...
Borislav Petkov reported his 32bit numa system has problem:
[ 0.000000] Reserving total of 4c00 pages for numa KVA remap
[ 0.000000] kva_start_pfn ~ 32800 max_low_pfn ~ 375fe
[ 0.000000] max_pfn = 238000
[ 0.000000] 8202MB HIGHMEM available.
[ 0.000000] 885MB LOWMEM available.
[ 0.000000] mapped low ram: 0 - 375fe000
[ 0.000000] low ram: 0 - 375fe000
[ 0.000000] alloc (nid=8 100000 - 7ee00000) (1000000 - ffffffff) 1000 1000 => 34e7000
[ 0.000000] alloc (nid=8 100000 - 7ee00000) (1000000 - ffffffff) 200 40 => 34c9d80
[ 0.000000] alloc (nid=0 100000 - 7ee00000) (1000000 - ffffffffffffffff) 180 40 => 34e6140
[ 0.000000] alloc (nid=1 80000000 - c7e60000) (1000000 - ffffffffffffffff) 240 40 => 80000000
[ 0.000000] BUG: unable to handle kernel paging request at 40000000
[ 0.000000] IP: [<c2c8cff1>] __alloc_memory_core_early+0x147/0x1d6
[ 0.000000] *pdpt = 0000000000000000 *pde = f000ff53f000ff00
...
[ 0.000000] Call Trace:
[ 0.000000] [<c2c8b4f8>] ? __alloc_bootmem_node+0x216/0x22f
[ 0.000000] [<c2c90c9b>] ? sparse_early_usemaps_alloc_node+0x5a/0x10b
[ 0.000000] [<c2c9149e>] ? sparse_init+0x1dc/0x499
[ 0.000000] [<c2c79118>] ? paging_init+0x168/0x1df
[ 0.000000] [<c2c780ff>] ? native_pagetable_setup_start+0xef/0x1bb
looks like it allocates too much high address for bootmem.
Try to cut limit with get_max_mapped()
Reported-by: Borislav Petkov <borislav.petkov@amd.com>
Tested-by: Conny Seidel <conny.seidel@amd.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Cc: <stable@kernel.org> [2.6.34.x]
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Lee Schermerhorn <lee.schermerhorn@hp.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-07-20 16:25:40 -07:00
..
2010-07-06 08:59:53 +02:00
2010-07-20 16:25:40 -07:00
2010-03-30 22:02:32 +09:00
2010-05-25 08:06:59 -07:00
2009-04-01 08:59:13 -07:00
2009-06-30 18:56:00 -07:00
2010-03-06 11:26:25 -08:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-05-30 09:16:14 -07:00
2010-03-06 11:26:23 -08:00
2010-05-25 08:07:01 -07:00
2010-05-25 08:06:57 -07:00
2009-12-16 12:20:01 +01:00
2009-06-16 19:47:28 -07:00
2009-12-16 12:19:59 +01:00
2010-07-14 17:14:00 +10:00
2009-09-21 15:14:57 +02:00
2010-03-30 22:02:32 +09:00
2009-06-24 15:13:48 +09:00
2010-03-30 22:02:32 +09:00
2010-05-25 08:06:58 -07:00
2010-01-07 11:58:36 -06:00
2009-12-16 12:20:00 +01:00
2010-07-14 17:14:00 +10:00
2010-07-14 17:14:00 +10:00
2010-06-29 15:29:30 -07:00
2010-05-25 08:07:02 -07:00
2010-03-30 22:02:32 +09:00
2010-05-25 08:07:00 -07:00
2010-06-29 15:29:31 -07:00
2009-09-22 07:17:35 -07:00
2010-05-27 09:12:44 -07:00
2010-05-25 08:06:58 -07:00
2010-03-26 11:33:55 +01:00
2008-08-20 15:40:30 -07:00
2010-04-27 08:26:51 -07:00
2010-03-24 16:31:21 -07:00
2010-03-30 22:02:32 +09:00
2009-05-18 11:22:24 +01:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-05-21 18:31:21 -04:00
2010-05-26 08:19:23 -07:00
2010-05-27 09:12:43 -07:00
2010-07-20 16:25:40 -07:00
2010-07-19 11:54:14 +01:00
2010-03-30 22:02:32 +09:00
2008-11-06 15:41:19 -08:00
2010-07-06 08:54:03 +02:00
2010-04-07 08:38:04 -07:00
2010-03-30 22:02:32 +09:00
2010-05-01 08:30:50 +02:00
2010-05-01 08:30:50 +02:00
2010-06-18 15:07:23 +02:00
2010-03-30 22:02:32 +09:00
2010-05-25 08:07:00 -07:00
2010-05-25 08:06:59 -07:00
2010-06-04 17:16:30 -04:00
2010-05-27 09:12:57 -07:00
2010-05-19 22:03:13 +03:00
2010-05-30 12:46:17 -07:00
2010-03-30 22:02:32 +09:00
2010-05-25 08:06:56 -07:00
2010-03-30 22:02:32 +09:00
2010-05-25 15:06:06 +02:00
2010-05-21 15:26:46 -07:00
2009-06-23 12:50:05 -07:00
2010-05-27 22:15:33 -04:00
2010-04-09 10:09:50 -07:00
2010-02-02 12:50:47 -08:00
2010-07-20 16:25:40 -07:00
2010-05-25 08:06:59 -07:00