Re: [PATCH -v3 0/7] x86: Use BRK to pre mapping page table to makexen happy

From: Yinghai Lu
Date: Wed Nov 07 2012 - 23:06:16 EST


On Wed, Nov 7, 2012 at 5:40 PM, Konrad Rzeszutek Wilk
<konrad.wilk@xxxxxxxxxx> wrote:
>
> I ran in a problem with launching an 8GB guest. When launching a 4GB it worked
> fine, but with 8GB I get:
>
> .000000] init_memory_mapping: [mem 0x1f4000000-0x1f47fffff]
> [ 0.000000] [mem 0x1f4000000-0x1f47fffff] page 4k
> [ 0.000000] memblock_reserve: [0x000001f311c000-0x000001f311d000] alloc_low_pages+0x103/0x130
> [ 0.000000] memblock_reserve: [0x000001f311b000-0x000001f311c000] alloc_low_pages+0x103/0x130
> [ 0.000000] memblock_reserve: [0x000001f311a000-0x000001f311b000] alloc_low_pages+0x103/0x130
> [ 0.000000] memblock_reserve: [0x000001f3119000-0x000001f311a000] alloc_low_pages+0x103/0x130
> [ 0.000000] Kernel panic - not syncing: initrd too large to handle, disabling initrd (348401664 needed, 524288 available)
> [ 0.000000]
> [ 0.000000] Pid: 0, comm: swapper Not tainted 3.7.0-rc4upstream-00042-g1b66ccf #1
> [ 0.000000] Call Trace:
> [ 0.000000] [<ffffffff81633a5c>] panic+0xbf/0x1df
> [ 0.000000] [<ffffffff81ac00e1>] setup_arch+0x728/0xb29
> [ 0.000000] [<ffffffff81633c48>] ? printk+0x48/0x4a
> [ 0.000000] [<ffffffff81aba897>] start_kernel+0x90/0x39e
> [ 0.000000] [<ffffffff81aba356>] x86_64_start_reservations+0x131/0x136
> [ 0.000000] [<ffffffff81abca38>] xen_start_kernel+0x546/0x548
>

xen memmap

[ 0.000000] Xen: [mem 0x0000000000000000-0x000000000009ffff] usable
[ 0.000000] Xen: [mem 0x00000000000a0000-0x00000000000fffff] reserved
[ 0.000000] Xen: [mem 0x0000000000100000-0x00000001f47fffff] usable

there is no hole under 4G, trigger the bug about max_low_pfn_mapped updating in
add_pfn_range_mapped().

please check attached patch, that should fix the problem.

then I will fold it into corresponding commit that instroduce
add_pfn_range_mapped().

Thanks

Yinghai

Attachment: fix_max_low_pfn_mapped.patch
Description: Binary data