Messages in this thread | | | Date | Tue, 28 Jan 2014 01:53:16 -0500 | From | Dave Jones <> | Subject | Re: [PATCH] numa, mem-hotplug: Fix stack overflow in numa when seting kernel nodes to unhotpluggable. |
| |
On Tue, Jan 28, 2014 at 01:17:21PM +0800, Tang Chen wrote:
> Seeing from your earlier mail, it crashed at: > > while (zonelist_zone_idx(z) > highest_zoneidx) > de: 3b 77 08 cmp 0x8(%rdi),%esi > > > I stuck this at the top of the function.. > > printk(KERN_ERR "z:%p nodes:%p highest:%d\n", z, nodes, highest_zoneidx); > > and got > > z: 1d08 nodes: (null) highest:3 > > > nodes=null and highest=3, they are correct. When looking into > next_zones_zonelist(), > I cannot see why it crashed. So, can you print the zone id in the > for_each_zone_zonelist() loop in nr_free_zone_pages() ? > I want to know why it crashed. A NULL pointer ? Which one ?
It's not so easy further in the function, because the oops scrolls off any useful printks, there's no scrollback, and no logging.. I even tried adding some udelays to slow things down (and using boot_delay) but that makes things just hang seemingly indefinitly.
What about that 'z' ptr though ? 0x1d08 seems like a strange address for us to have a structure at, though I'm not too familiar with the early boot code, so maybe we do have something down there ?
Dave
| |