Subject: Re: BUG: Bad page map in process init pte:c0ab684c pmd:01182000 (on a PowerMac G4 DP)

From: Erhard Furtner <[email-masked]>
Date: Tue, 5 Mar 2024 02:29:41 +0100

On Thu, 29 Feb 2024 17:11:28 +0000
Christophe Leroy <[email-masked]> wrote:

> Interesting.
> 
> I guess 0xe0000000 is where linear RAM starts to be mapped with pages ? 
> Can you confirm with a dump of 
> /sys/kernel/debug/powerpc/block_address_translation ?

 # cat /sys/kernel/debug/powerpc/block_address_translation
---[ Instruction Block Address Translation ]---
0: 0xc0000000-0xc0ffffff 0x00000000        16M Kernel   x     m   
1: 0xc1000000-0xc13fffff 0x01000000         4M Kernel   x     m   
2: 0xc1400000-0xc15fffff 0x01400000         2M Kernel   x     m   
3: 0xc1600000-0xc16fffff 0x01600000         1M Kernel   x     m   
4:         -
5:         -
6:         -
7:         -

---[ Data Block Address Translation ]---
0: 0xc0000000-0xc0ffffff 0x00000000        16M Kernel r       m   
1: 0xc1000000-0xc17fffff 0x01000000         8M Kernel r       m   
2: 0xc1800000-0xc1bfffff 0x01800000         4M Kernel r       m   
3: 0xf8000000-0xfbffffff 0x7c000000        64M Kernel rw      m   
4: 0xfc000000-0xfdffffff 0x7a000000        32M Kernel rw      m   
5:         -
6:         -
7:         -

block_address_translation looks different after the page corruption:

 # cat /sys/kernel/debug/powerpc/block_address_translation
---[ Instruction Block Address Translation ]---
0: 0xc0000000-0xc1ffffff 0x00000000        32M Kernel   x     m   
1:         -
2:         -
3:         -
4:         -
5:         -
6:         -
7:         -

---[ Data Block Address Translation ]---
0: 0xc0000000-0xc0ffffff 0x00000000        16M Kernel rw      m   
1: 0xc1000000-0xc17fffff 0x01000000         8M Kernel rw      m   
2: 0xc1800000-0xc1bfffff 0x01800000         4M Kernel rw      m   
3: 0xf8000000-0xfbffffff 0x7c000000        64M Kernel rw      m   
4: 0xfc000000-0xfdffffff 0x7a000000        32M Kernel rw      m   
5:         -
6:         -
7:         -

> Do we have a problem of race with hash table ?
> 
> Would KCSAN help with that ?

KCSAN did not report any hits during "stress -m 2 --vm-bytes 965M". Options used: KCSAN_SELFTEST=y, KCSAN_REPORT_ONCE_IN_MS=12000, KCSAN_REPORT_RACE_UNKNOWN_ORIGIN=y, KCSAN_STRICT=y, KCSAN_WEAK_MEMORY=y.

Regards,
Erhard