Re: KASAN debug kernel fails to boot at early stage when CONFIG_SMP=y is set (kernel 6.5-rc5, PowerMac G4 3,6)
From: Christophe Leroy <hidden>
Date: 2023-08-15 17:26:36
Le 14/08/2023 à 19:27, Erhard Furtner a écrit :
On Mon, 14 Aug 2023 09:40:44 +0000 Christophe Leroy [off-list ref] wrote:quoted
Interesting. That means we get stuck somewhere around MMU_init() We know that MMU_init_hw() is called and runs at least until: pr_info("Total memory = %lldMB; using %ldkB for hash table\n", (unsigned long long)(total_memory >> 20), Hash_size >> 10); But we never reach the print in setup_kuap() which is itself called by set_kup(): pr_info("Activating Kernel Userspace Access Protection\n"); Could you try to narrow more the issue by spreading pr_info() at places in the code below and/or the called functions ? Either we never come back from MMU_init_hw(), or one of mapin_ram() btext_unmap() kasan_mmu_init() fails. So the piece of code we are interested in is located in arch/powerpc/mm/init_32.c and is: /* Initialize the MMU hardware */ if (ppc_md.progress) ppc_md.progress("MMU:hw init", 0x300); ==> MMU_init_hw(); /* Map in all of RAM starting at KERNELBASE */ if (ppc_md.progress) ppc_md.progress("MMU:mapin", 0x301); mapin_ram(); /* Initialize early top-down ioremap allocator */ ioremap_bot = IOREMAP_TOP; if (ppc_md.progress) ppc_md.progress("MMU:exit", 0x211); /* From now on, btext is no longer BAT mapped if it was at all */ #ifdef CONFIG_BOOTX_TEXT btext_unmap(); #endif kasan_mmu_init(); ==> setup_kup();I added a pr_info(); right after MMU_init_hw(); and another one right after setup_kup();. Output of PPC_EARLY_DEBUG changes so that I get an additional black blank line after [ 0.000000] printk: bootconsole [udbg0] enabled [ 0.000000] Total memory = 2048MB; using 4096kB for hash table and the freeze afterwards. So it looks like we return from MMU_init_hw() but not from setup_kup().
I just sent a patch with additional pr_info() in order to help locate the issue, please provide output with that patch. Thanks Christophe