Fail to boot 5.15 on mpc8347 with either debug_pagealloc or nobats

Maxime Bizon mbizon at freebox.fr
Mon Dec 6 21:32:06 AEDT 2021



On Mon, 2021-12-06 at 09:07 +0000, Christophe Leroy wrote:

Hello,

> Looks like you can win something if you take the patch I just sent
> and replace the memblock_phys_alloc(k_size, k_size) by 
> memblock_phys_alloc_range(k_size, k_size, 0, MEMBLOCK_ALLOC_ANYWHERE)

I tried your patch without your proposed modification and got something new:

[    0.000000] ==================================================================
[    0.000000] BUG: KASAN: unknown-crash in vprintk+0x30/0xe8
[    0.000000] Read of size 4 at addr 80ad0740 by task swapper/0
[    0.000000] 
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.15.0+ #415
[    0.000000] Call Trace:
[    0.000000] [80cdfe50] [8017711c] print_address_description.constprop.0+0x78/0x338 (unreliable)
[    0.000000] [80cdfe80] [80176e48] kasan_report+0x1c0/0x1d4
[    0.000000] [80cdfec0] [80099a34] vprintk+0x30/0xe8
[    0.000000] [80cdfee0] [80099600] _printk+0x9c/0xbc
[    0.000000] [80cdff60] [80999628] kasan_init+0x14c/0x164
[    0.000000] [80cdff90] [80995440] setup_arch+0x18/0x1c4
[    0.000000] [80cdffc0] [809910c8] start_kernel+0x60/0x2fc
[    0.000000] [80cdfff0] [000033c0] 0x33c0
[    0.000000] 
[    0.000000] The buggy address belongs to the variable:
[    0.000000]  init_task+0x0/0xce0
[    0.000000] 
[    0.000000] Memory state around the buggy address:
[    0.000000]  80ad0600: de ad be ef de ad be ef de ad be ef de ad be ef
[    0.000000]  80ad0680: de ad be ef de ad be ef de ad be ef de ad be ef
[    0.000000] >80ad0700: de ad be ef de ad be ef de ad be ef de ad be ef
[    0.000000]                                    ^
[    0.000000]  80ad0780: de ad be ef de ad be ef de ad be ef de ad be ef
[    0.000000]  80ad0800: de ad be ef de ad be ef de ad be ef de ad be ef
[    0.000000] ==================================================================
[    0.000000] Disabling lock debugging due to kernel taint
[    0.000000] KASAN init done


Looking at the archive when you introduced KASAN, you had this kind of
bug, and the conclusion of the thread was:

> Indeed the problem is in kasan_init() : memblock_phys_alloc()
> doesn't zeroize the allocated memory. I changed it to
> memblock_alloc() and now it works.	

since your patch uses memblock_phys_alloc() again, maybe that's the
same issue

-- 
Maxime





More information about the Linuxppc-dev mailing list