From: Erhard Furtner <erhard_f@mailbox.org>
To: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: "linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: Re: KASAN debug kernel fails to boot at early stage when CONFIG_SMP=y is set (kernel 6.5-rc5, PowerMac G4 3,6)
Date: Tue, 12 Sep 2023 17:59:41 +0200 [thread overview]
Message-ID: <20230912175941.0fca47bb@yea> (raw)
In-Reply-To: <22f67fc2-ae70-bbc7-ca2a-dffbf62731f3@csgroup.eu>
On Tue, 12 Sep 2023 07:47:50 +0000
Christophe Leroy <christophe.leroy@csgroup.eu> wrote:
> I suspect something wrong when we set the BATs.
>
> Can you try with the following additional traces:
>
> diff --git a/arch/powerpc/mm/kasan/book3s_32.c
> b/arch/powerpc/mm/kasan/book3s_32.c
> index 450a67ef0bbe..9954b7a3b7ae 100644
> --- a/arch/powerpc/mm/kasan/book3s_32.c
> +++ b/arch/powerpc/mm/kasan/book3s_32.c
> @@ -15,6 +15,7 @@ int __init kasan_init_region(void *start, size_t size)
> phys_addr_t phys;
> int ret;
>
> + pr_err("%s: %px %x %lx %lx\n", __func__, start, size, k_start, k_end);
> while (k_nobat < k_end) {
> unsigned int k_size = bat_block_size(k_nobat, k_end);
> int idx = find_free_bat();
> @@ -28,6 +29,7 @@ int __init kasan_init_region(void *start, size_t size)
> if (!phys)
> break;
>
> + pr_err("%s: setbat %d %lx %x %x\n", __func__, idx, k_nobat, phys,
> k_size);
> setbat(idx, k_nobat, phys, k_size, PAGE_KERNEL);
> k_nobat += k_size;
> }
> @@ -47,6 +49,7 @@ int __init kasan_init_region(void *start, size_t size)
>
> kasan_update_early_region(k_start, k_nobat, __pte(0));
>
> + pr_err("%s: loop %lx %lx\n", __func__, k_nobat, k_end);
> for (k_cur = k_nobat; k_cur < k_end; k_cur += PAGE_SIZE) {
> pmd_t *pmd = pmd_off_k(k_cur);
> pte_t pte = pfn_pte(PHYS_PFN(phys + k_cur - k_nobat), PAGE_KERNEL);
>
>
> You'd then get something like:
>
> Total memory = 2048MB; using 4096kB for hash table
> Activating Kernel Userspace Access Protection
> Activating Kernel Userspace Execution Prevention
> Linux version 6.6.0-rc1+ (chleroy@PO20335.IDSI0.si.c-s.fr)
> (powerpc64-linux-gcc (GCC) 12.2.0, GNU ld (GNU Binutils) 2.39) #461 Tue
> Sep 12 09:37:11 CEST 2023
> kasan_init_region: c0000000 30000000 f8000000 fe000000
> kasan_init_region: setbat 3 f8000000 7c000000 4000000
> kasan_init_region: loop fc000000 fe000000
> KASAN init done
Applied this patch on top of 6.6-rc1, your old pr_info() patch and Michaels patch.
This way booting gets stuck at:
printk: bootconsole [udbg0] enabled
Total memory = 2048MB; using 4096kB for hash table
mapin_ram:125
mmu_mapin_ram:169 0 30000000 1400000 2000000
__mmu_mapin_ram:146 0 1400000
__mmu_mapin_ram:155 1400000
__mmu_mapin_ram:146 1400000 30000000
__mmu_mapin_ram:155 20000000
__mapin_ram_chunk:107 20000000 30000000
__mapin_ram_chunk:117
mapin_ram:134
btext_unmap:129
Having moved btext_unmap() after memblock_set_current_limit(lowmem_end_addr) in init_32.c I get:
printk: bootconsole [udbg0] enabled
Total memory = 2048MB; using 4096kB for hash table
mapin_ram:125
mmu_mapin_ram:169 0 30000000 1400000 2000000
__mmu_mapin_ram:146 0 1400000
__mmu_mapin_ram:155 1400000
__mmu_mapin_ram:146 1400000 30000000
__mmu_mapin_ram:155 20000000
__mapin_ram_chunk:107 20000000 30000000
__mapin_ram_chunk:117
mapin_ram:134
kasan_mmu_init:129
kasan_mmu_init:132 0
kasan_mmu_init:137
btext_unmap:129
Changing the already moved btext_unmap() to btext_map() I get:
printk: bootconsole [udbg0] enabled
Total memory = 2048MB; using 4096kB for hash table
mapin_ram:125
mmu_mapin_ram:169 0 30000000 1400000 2000000
__mmu_mapin_ram:146 0 1400000
__mmu_mapin_ram:155 1400000
__mmu_mapin_ram:146 1400000 30000000
__mmu_mapin_ram:155 20000000
__mapin_ram_chunk:107 20000000 30000000
__mapin_ram_chunk:117
mapin_ram:134
kasan_mmu_init:129
kasan_mmu_init:132 0
kasan_mmu_init:137
ioremap() called early from btext_map+0x64/0xdc. Use early_ioremap() instead
Linux version 6.6.0-rc1-PMacG4-dirty (root@T1000) (gcc (Gentoo 12.3.1_p20230526 p2) 12.3.1 20230526, GNU ld (Gentoo 2.40 p7) 2.40.0) #5 SMP Tue Sep 12 16:50:47 CEST 2023
kasan_init_region: c0000000 30000000 f8000000 fe000000
kasan_init_region: loop f8000000 fe000000
So I get no "kasan_init_region: setbat" line and don't reach "KASAN init done".
Regards,
Erhard
next prev parent reply other threads:[~2023-09-12 16:01 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-10 23:48 KASAN debug kernel fails to boot at early stage when CONFIG_SMP=y is set (kernel 6.5-rc5, PowerMac G4 3,6) Erhard Furtner
2023-08-11 6:45 ` Christophe Leroy
2023-08-13 19:38 ` Erhard Furtner
2023-08-14 9:40 ` Christophe Leroy
2023-08-14 17:27 ` Erhard Furtner
2023-08-15 17:21 ` [PATCH] Add pr_info() traces for investigation Christophe Leroy
2023-08-15 17:25 ` KASAN debug kernel fails to boot at early stage when CONFIG_SMP=y is set (kernel 6.5-rc5, PowerMac G4 3,6) Christophe Leroy
2023-08-15 20:01 ` Erhard Furtner
2023-08-16 15:56 ` Christophe Leroy
2023-08-17 18:32 ` Erhard Furtner
2023-08-17 23:13 ` Michael Ellerman
2023-08-18 9:16 ` Erhard Furtner
2023-08-18 15:47 ` Christophe Leroy
2023-08-18 16:23 ` Erhard Furtner
2023-08-22 7:31 ` Christophe Leroy
2023-08-24 0:00 ` Erhard Furtner
2023-08-24 11:36 ` Michael Ellerman
2023-08-27 23:17 ` Erhard Furtner
2023-08-31 5:32 ` Christophe Leroy
2023-08-31 22:44 ` Erhard Furtner
2023-09-01 7:43 ` Christophe Leroy
2023-09-03 21:06 ` Erhard Furtner
2023-09-04 14:48 ` Christophe Leroy
2023-09-04 14:55 ` Christophe Leroy
2023-09-04 21:32 ` Erhard Furtner
2023-09-12 0:11 ` Erhard Furtner
2023-09-12 7:47 ` Christophe Leroy
2023-09-12 15:59 ` Erhard Furtner [this message]
2023-09-12 17:39 ` Christophe Leroy
2023-09-12 20:09 ` Erhard Furtner
2023-09-13 5:28 ` Christophe Leroy
2023-09-14 4:54 ` Christophe Leroy
2023-09-14 12:33 ` Erhard Furtner
2024-02-28 23:55 ` Erhard Furtner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230912175941.0fca47bb@yea \
--to=erhard_f@mailbox.org \
--cc=christophe.leroy@csgroup.eu \
--cc=linuxppc-dev@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).