Re: Kernel crash after "mm: initialize pages on demand during boot"

From: Herton R. Krzesinski
Date: Wed Jun 27 2018 - 13:47:18 EST


On Wed, Jun 27, 2018 at 11:06:14AM -0400, Pavel Tatashin wrote:
> On Wed, Jun 27, 2018 at 10:15 AM Herton R. Krzesinski <herton@xxxxxxxxxx> wrote:
> > Thanks, I'll try it. It'll probably work since I tried memory_reserve
> > but "hacking" it at e820__register_nosave_regions, anyway I'll confirm
> > it here.
>
> If it works, please send the new "Reserved but unavailable" value from dmesg:
> [ 0.000000] Reserved but unavailable: 103 pages

It worked, I don't see the oops with the patch. Here is the relevant
parts of dmesg (with memblock=debug):

[ 0.000000] found SMP MP-table at [mem 0x000fce40-0x000fce4f] mapped at [(____ptrval____)]
[ 0.000000] memblock_reserve: [0x00000000000fce40-0x00000000000fce4f] smp_scan_config+0xb1/0xf5
[ 0.000000] memblock_reserve: [0x00000000000fcc20-0x00000000000fcdd3] smp_scan_config+0xc8/0xf5
[ 0.000000] memblock_reserve: [0x0000000039494000-0x00000000394a0fff] setup_arch+0x5b7/0xcb0
[ 0.000000] memblock_reserve: [0x0000000000000000-0x0000000000000fff] e820__memblock_setup+0x66/0x9d
[ 0.000000] memblock_add: [0x0000000000001000-0x000000000009a3ff] e820__memblock_setup+0x6d/0x9d
[ 0.000000] memblock_reserve: [0x000000000009a400-0x000000000009ffff] e820__memblock_setup+0x66/0x9d
[ 0.000000] memblock_reserve: [0x00000000000a0000-0x00000000000dffff] e820__memblock_setup+0x44/0x9d
[ 0.000000] memblock_reserve: [0x00000000000e0000-0x00000000000fffff] e820__memblock_setup+0x66/0x9d
[ 0.000000] memblock_add: [0x0000000000100000-0x000000007f3e4fff] e820__memblock_setup+0x6d/0x9d
[ 0.000000] memblock_reserve: [0x000000007f3e5000-0x000000007f42cfff] e820__memblock_setup+0x66/0x9d
[ 0.000000] memblock_reserve: [0x000000007f42d000-0x000000007f433fff] e820__memblock_setup+0x66/0x9d
[ 0.000000] memblock_reserve: [0x000000007f434000-0x000000007f504fff] e820__memblock_setup+0x66/0x9d
[ 0.000000] memblock_reserve: [0x000000007f505000-0x000000007f50ffff] e820__memblock_setup+0x66/0x9d
[ 0.000000] memblock_reserve: [0x000000007f510000-0x000000007f535fff] e820__memblock_setup+0x66/0x9d
[ 0.000000] memblock_reserve: [0x000000007f536000-0x000000007f578fff] e820__memblock_setup+0x66/0x9d
[ 0.000000] memblock_add: [0x000000007f579000-0x000000007f7fffff] e820__memblock_setup+0x6d/0x9d
[ 0.000000] memblock_reserve: [0x000000007f800000-0x00000000dfffffff] e820__memblock_setup+0x44/0x9d
[ 0.000000] memblock_reserve: [0x00000000e0000000-0x00000000efffffff] e820__memblock_setup+0x66/0x9d
[ 0.000000] memblock_reserve: [0x00000000f0000000-0x00000000fed1bfff] e820__memblock_setup+0x44/0x9d
[ 0.000000] memblock_reserve: [0x00000000fed1c000-0x00000000fed3ffff] e820__memblock_setup+0x66/0x9d
[ 0.000000] memblock_reserve: [0x00000000fed40000-0x00000000feffffff] e820__memblock_setup+0x44/0x9d
[ 0.000000] memblock_reserve: [0x00000000ff000000-0x00000000ffffffff] e820__memblock_setup+0x66/0x9d
[ 0.000000] MEMBLOCK configuration:
[ 0.000000] memory size = 0x000000007f605400 reserved size = 0x0000000086935c00
[ 0.000000] memory.cnt = 0x3
[ 0.000000] memory[0x0] [0x0000000000001000-0x0000000000099fff], 0x0000000000099000 bytes flags: 0x0
[ 0.000000] memory[0x1] [0x0000000000100000-0x000000007f3e4fff], 0x000000007f2e5000 bytes flags: 0x0
[ 0.000000] memory[0x2] [0x000000007f579000-0x000000007f7fffff], 0x0000000000287000 bytes flags: 0x0
[ 0.000000] reserved.cnt = 0x6
[ 0.000000] reserved[0x0] [0x0000000000000000-0x0000000000000fff], 0x0000000000001000 bytes flags: 0x0
[ 0.000000] reserved[0x1] [0x000000000009a400-0x00000000000fffff], 0x0000000000065c00 bytes flags: 0x0
[ 0.000000] reserved[0x2] [0x000000002f6bd000-0x0000000033b56fff], 0x000000000449a000 bytes flags: 0x0
[ 0.000000] reserved[0x3] [0x0000000037a00000-0x00000000394a0fff], 0x0000000001aa1000 bytes flags: 0x0
[ 0.000000] reserved[0x4] [0x000000007f3e5000-0x000000007f578fff], 0x0000000000194000 bytes flags: 0x0
[ 0.000000] reserved[0x5] [0x000000007f800000-0x00000000ffffffff], 0x0000000080800000 bytes flags: 0x0
...
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000001000-0x0000000000ffffff]
[ 0.000000] DMA32 [mem 0x0000000001000000-0x000000007f7fffff]
[ 0.000000] Normal empty
[ 0.000000] Device empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000001000-0x0000000000099fff]
[ 0.000000] node 0: [mem 0x0000000000100000-0x000000007f3e4fff]
[ 0.000000] node 0: [mem 0x000000007f579000-0x000000007f7fffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000007f7fffff]
[ 0.000000] On node 0 totalpages: 521733
[ 0.000000] DMA zone: 64 pages used for memmap
[ 0.000000] DMA zone: 21 pages reserved
[ 0.000000] DMA zone: 3993 pages, LIFO batch:0
[ 0.000000] DMA32 zone: 8096 pages used for memmap
[ 0.000000] DMA32 zone: 517740 pages, LIFO batch:31
[ 0.000000] Reserved but unavailable: 2555 pages

>
> Thank you,
> Pavel

--
[]'s
Herton