Re: [PATCH V8] mm/debug: Add tests validating architecture page table helpers
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2019-11-07 12:54:29
Also in:
linux-arm-kernel, linux-mips, linux-mm, linux-s390, linux-sh, lkml, sparclinux
Anshuman Khandual [off-list ref] writes:
On 11/06/2019 12:11 PM, Christophe Leroy wrote:quoted
Le 06/11/2019 à 04:22, Anshuman Khandual a écrit :quoted
On 10/28/2019 10:59 AM, Anshuman Khandual wrote:quoted
+ ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | ok | + | c6x: | TODO | + | csky: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m68k: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | nds32: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | ppc32: | ok |Note that ppc32 is a part of powerpc, not a standalone arch.Right, I understand. But we are yet to hear about how this test came about on powerpc server platforms. Will update 'powerpc' arch listing above once we get some confirmation. May be once this works on all relevant powerpc platforms, we can just merge 'powerpc' and 'ppc32' entries here as just 'powerpc'.
On pseries: watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [swapper/0:1] Modules linked in: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.0-rc6-gcc-8.2.0-next-20191107-00001-g250339d6747b-dirty #152 NIP: c0000000010435a0 LR: c0000000010434b4 CTR: 0000000000000000 REGS: c00000003a403980 TRAP: 0901 Not tainted (5.4.0-rc6-gcc-8.2.0-next-20191107-00001-g250339d6747b-dirty) MSR: 8000000002009033 <SF,VEC,EE,ME,IR,DR,RI,LE> CR: 44000222 XER: 00000000 CFAR: c0000000010435a8 IRQMASK: 0 GPR00: c0000000010434b4 c00000003a403c10 c000000001295000 05210001000000c0 GPR04: 8000000000000105 0000000000400dc0 000000003eb00000 0000000000000001 GPR08: 0000000000000000 ffffffffffffffff 0000000000000001 0000000000000100 GPR12: 0000000000000000 c0000000018f0000 NIP [c0000000010435a0] debug_vm_pgtable+0x43c/0x82c LR [c0000000010434b4] debug_vm_pgtable+0x350/0x82c Call Trace: [c00000003a403c10] [c00000000104346c] debug_vm_pgtable+0x308/0x82c (unreliable) [c00000003a403ce0] [c000000001004310] kernel_init_freeable+0x1d0/0x39c [c00000003a403db0] [c000000000010da0] kernel_init+0x24/0x174 [c00000003a403e20] [c00000000000bdc4] ret_from_kernel_thread+0x5c/0x78 Instruction dump: 7d075078 7ce74b78 7ce0f9ad 40c2fff0 38800000 7f83e378 4b02eee1 60000000 48000080 3920ffff 39400001 39000000 <7ea0f8a8> 7ea75039 40c2fff8 7ea74878 Looking at the asm I think it's stuck in hash__pte_update() waiting for H_PAGE_BUSY to clear, but not sure why. That's just using qemu TCG, instructions here if anyone wants to test it themselves :) https://github.com/linuxppc/wiki/wiki/Booting-with-Qemu If I boot with -cpu power9 (using Radix MMU), I get a plain old BUG: debug_vm_pgtable: debug_vm_pgtable: Validating architecture page table helpers ------------[ cut here ]------------ kernel BUG at arch/powerpc/mm/pgtable.c:274! Oops: Exception in kernel mode, sig: 5 [#1] LE PAGE_SIZE=64K MMU=Radix SMP NR_CPUS=32 NUMA pSeries Modules linked in: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.0-rc6-gcc-8.2.0-next-20191107-00001-g250339d6747b-dirty #152 NIP: c0000000000724e8 LR: c00000000104358c CTR: 0000000000000000 REGS: c00000003a483980 TRAP: 0700 Not tainted (5.4.0-rc6-gcc-8.2.0-next-20191107-00001-g250339d6747b-dirty) MSR: 8000000002029033 <SF,VEC,EE,ME,IR,DR,RI,LE> CR: 24000224 XER: 20000000 CFAR: c000000001043588 IRQMASK: 0 GPR00: c00000000104358c c00000003a483c10 c000000001295000 0000000000000009 GPR04: 0000000000000000 0000000000000005 0000000000000000 0000000000000009 GPR08: 0000000000000001 000000000000000e 0000000000000001 c00000003a5f0000 GPR12: 0000000000000000 c0000000018f0000 c000000000010d84 0000000000000000 GPR16: 0000000000000000 0000000000000000 c00000003a5f0000 8000000000000105 GPR20: c000000001003ab8 0000000000000015 0500613a00000080 0900603a00000080 GPR24: 09202e3a00000080 c00000000133bd90 c00000000133bd98 c00000000133bda0 GPR28: c00000003a5e0000 c00000003a600af8 c00000003a2e2d48 c00000003a6100a0 NIP [c0000000000724e8] assert_pte_locked+0x88/0x190 LR [c00000000104358c] debug_vm_pgtable+0x428/0x82c Call Trace: [c00000003a483c10] [c00000000104346c] debug_vm_pgtable+0x308/0x82c (unreliable) [c00000003a483ce0] [c000000001004310] kernel_init_freeable+0x1d0/0x39c [c00000003a483db0] [c000000000010da0] kernel_init+0x24/0x174 [c00000003a483e20] [c00000000000bdc4] ret_from_kernel_thread+0x5c/0x78 Instruction dump: 7d251a14 39070010 7d463030 7d084a14 38c6ffff 7c884436 7cc607b4 7d083038 79081f24 7ccb402a 7cc80074 7908d182 <0b080000> 78cb0022 54c8c03e 7d473830 ---[ end trace a694f1bc56529c0e ]--- cheers