Skip to contentSkip to conversation

New: 5.19-rc4 kernel + KASAN fails to boot at very early stage when CONFIG_SMP=y is selected (PowerMac G4 3,6)

Bug 216190 [email protected] 1 participant 5 messages Jun 29, 2022 – Aug 19, 2022 PowerPC

lore
Share & tools
lore
#0 lore raw

https://bugzilla.kernel.org/show_bug.cgi?id=216190

Bug ID: 216190
Summary: 5.19-rc4 kernel + KASAN fails to boot at very early
stage when CONFIG_SMP=y is selected (PowerMac G4 3,6)
Product: Platform Specific/Hardware
Version: 2.5
Kernel Version: 5.19-rc4
Hardware: PPC-32
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: PPC-32
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Regression: No

Created attachment 301307
--> https://bugzilla.kernel.org/attachment.cgi?id=301307&action=edit
kernel .config (5.19-rc4, outline KASAN, CONFIG_SMP=y, PowerMac G4 DP)

Revisiting bug #215389 and bug #216041 I fiddled around with KASAN builds again and finally may have found a clue.

Kernel 5.19-rc4 runs fine with outline KASAN as long as '# CONFIG_SMP is not set'. It runs perfetly well without any advanced options needed, also setting THREAD_SHIFT manually to 14 is not needed.

As soon as I set CONFIG_SMP=y in the attached .config I get a non-working kernel. It boots but gets stuck very early on a white screen reading "done
found display: /pci@f0000000/ATY,AlteracParent@10/ATY,Alterac_B@1, opening..."

Interesting thing is that without SMP I also didn't get memory corruption as in bug #215389 nor stack overflows as in bug #216041 after hours of building so far.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#1 lore raw

[Bug 216190] 5.19-rc4 kernel + KASAN fails to boot at very early stage when CONFIG_SMP=y is selected (PowerMac G4 3,6)

https://bugzilla.kernel.org/show_bug.cgi?id=216190

--- Comment #1 from Erhard F. ([email protected]) --- Created attachment 301308
--> https://bugzilla.kernel.org/attachment.cgi?id=301308&action=edit
dmesg (5.19-rc4, outline KASAN, without SMP, PowerMac G4 DP)

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#2 lore raw

[Bug 216190] 5.19-rc4 kernel + KASAN fails to boot at very early stage when CONFIG_SMP=y is selected (PowerMac G4 3,6)

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=216190

--- Comment #2 from Christophe Leroy ([email protected]) --- Problem is likely due to commit 4291d085b0b0 ("powerpc/32s: Make pte_update() non atomic on 603 core")

kasan_early_init() calls __set_pte_at(), which calls pte_update() if CONFIG_SMP, and pte_update() calls mmu_has_feature() since above commit, but that's too early for calling mmu_has_feature() so mmu_has_feature() tries to warn using printk(), but that cannot work because the KASAN shadow is not set.

Can you try with the change below ?

arch/powerpc/mm/kasan/init_32.c +0 -0
index f3e4d069e0ba..a70828a6d935 100644
@@ -25,7 +25,7 @@ static void __init kasan_populate_pte(pte_t *ptep, pgprot_t

prot)

        int i;

        for (i = 0; i < PTRS_PER_PTE; i++, ptep++)

- __set_pte_at(&init_mm, va, ptep, pfn_pte(PHYS_PFN(pa), prot),
0);
+ __set_pte_at(&init_mm, va, ptep, pfn_pte(PHYS_PFN(pa), prot),
1);
}

int __init kasan_init_shadow_page_tables(unsigned long k_start, unsigned long
k_end)

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#3 lore raw

[Bug 216190] 5.19-rc4 kernel + KASAN fails to boot at very early stage when CONFIG_SMP=y is selected (PowerMac G4 3,6)

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=216190

--- Comment #3 from Erhard F. ([email protected]) --- (In reply to Christophe Leroy from comment #2)

Quoted 10 lines

Problem is likely due to commit 4291d085b0b0 ("powerpc/32s: Make pte_update() non atomic on 603 core")

kasan_early_init() calls __set_pte_at(), which calls pte_update() if CONFIG_SMP, and pte_update() calls mmu_has_feature() since above commit, but that's too early for calling mmu_has_feature() so mmu_has_feature() tries to warn using printk(), but that cannot work because the KASAN shadow is not set.

Can you try with the change below ?

Applied your patch on top of 5.19-rc4 and can confirm it works. Thanks!

I'll close here as soon it is in the -rcs.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#4 lore raw

[Bug 216190] 5.19-rc4 kernel + KASAN fails to boot at very early stage when CONFIG_SMP=y is selected (PowerMac G4 3,6)

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=216190

Erhard F. ([email protected]) changed:

What |Removed |Added
----------------------------------------------------------------------------

             Status|NEW                         |RESOLVED
         Resolution|---                         |CODE_FIX

--- Comment #4 from Erhard F. ([email protected]) --- Patch landed in stable (v5.19.2) meanwhile.

Closing here.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.