linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] fix memmap init for handling memory hole v2
@ 2009-02-12  7:19 KAMEZAWA Hiroyuki
  2009-02-12  7:22 ` [PATCH 1/2] clean up for early_pfn_to_nid KAMEZAWA Hiroyuki
  2009-02-12  7:24 ` [PATCH 2/2] fix memmap init for handling memory hole KAMEZAWA Hiroyuki
  0 siblings, 2 replies; 10+ messages in thread
From: KAMEZAWA Hiroyuki @ 2009-02-12  7:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-mm, kosaki.motohiro, akpm, davem, heiko.carstens

This set is a replacement for

mm-fix-memmap-init-to-initialize-valid-memmap-for-memory-hole.patch (dropped)

I think this version is much cleaner than previous one.

This is a fix for routines in boot, so this can add a terrible error.
Please test when you have time. I tested on x86-64+fake NUMA.

-Kame
== from this problem.

What's happening is that the assertion in mm/page_alloc.c:move_freepages()
is triggering:

	BUG_ON(page_zone(start_page) != page_zone(end_page));

Once I knew this is what was happening, I added some annotations:

	if (unlikely(page_zone(start_page) != page_zone(end_page))) {
		printk(KERN_ERR "move_freepages: Bogus zones: "
		       "start_page[%p] end_page[%p] zone[%p]\n",
		       start_page, end_page, zone);
		printk(KERN_ERR "move_freepages: "
		       "start_zone[%p] end_zone[%p]\n",
		       page_zone(start_page), page_zone(end_page));
		printk(KERN_ERR "move_freepages: "
		       "start_pfn[0x%lx] end_pfn[0x%lx]\n",
		       page_to_pfn(start_page), page_to_pfn(end_page));
		printk(KERN_ERR "move_freepages: "
		       "start_nid[%d] end_nid[%d]\n",
		       page_to_nid(start_page), page_to_nid(end_page));
 ...

And here's what I got:

	move_freepages: Bogus zones: start_page[2207d0000] end_page[2207dffc0] zone[fffff8103effcb00]
	move_freepages: start_zone[fffff8103effcb00] end_zone[fffff8003fffeb00]
	move_freepages: start_pfn[0x81f600] end_pfn[0x81f7ff]
	move_freepages: start_nid[1] end_nid[0]

My memory layout on this box is:

[    0.000000] Zone PFN ranges:
[    0.000000]   Normal   0x00000000 -> 0x0081ff5d
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[8] active PFN ranges
[    0.000000]     0: 0x00000000 -> 0x00020000
[    0.000000]     1: 0x00800000 -> 0x0081f7ff
[    0.000000]     1: 0x0081f800 -> 0x0081fe50
[    0.000000]     1: 0x0081fed1 -> 0x0081fed8
[    0.000000]     1: 0x0081feda -> 0x0081fedb
[    0.000000]     1: 0x0081fedd -> 0x0081fee5
[    0.000000]     1: 0x0081fee7 -> 0x0081ff51
[    0.000000]     1: 0x0081ff59 -> 0x0081ff5d

So it's a block move in that 0x81f600-->0x81f7ff region which triggers
the problem.

--
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>

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2009-02-27  6:37 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-12  7:19 [PATCH 0/2] fix memmap init for handling memory hole v2 KAMEZAWA Hiroyuki
2009-02-12  7:22 ` [PATCH 1/2] clean up for early_pfn_to_nid KAMEZAWA Hiroyuki
2009-02-13  6:14   ` KOSAKI Motohiro
2009-02-13 22:20   ` Andrew Morton
2009-02-13 23:38     ` KAMEZAWA Hiroyuki
2009-02-14  6:12     ` David Miller
2009-02-16  0:50       ` KAMEZAWA Hiroyuki
2009-02-27  6:37         ` David Miller
2009-02-12  7:24 ` [PATCH 2/2] fix memmap init for handling memory hole KAMEZAWA Hiroyuki
2009-02-13  6:15   ` KOSAKI Motohiro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox