Re: [PATCH] numa, mem-hotplug: Fix stack overflow in numa whenseting kernel nodes to unhotpluggable.

From: Dave Jones
Date: Tue Jan 28 2014 - 01:53:46 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/