Messages in this thread | | | Subject | PPC476 hangs during tlb flush after calling /init in crash kernel with linux 5.4+ | From | Eddie James <> | Date | Tue, 27 Apr 2021 12:03:25 -0500 |
| |
Hi all,
I'm having a problem in simulation and hardware where my PPC476 processor stops executing instructions after callling /init. In my case this is a bash script. The code descends to flush the TLB, and somewhere in the loop in _tlbil_pid, the PC goes to InstructionTLBError47x but does not go any further. This only occurs in the crash kernel environment, which is using the same kernel, initramfs, and init script as the main kernel, which executed fine. I do not see this problem with linux 4.19 or 3.10. I do see it with 5.4 and 5.10. I see a fair amount of refactoring in the PPC memory management area between 4.19 and 5.4. Can anyone point me in a direction to debug this further? My stack trace is below as I can run gdb in simulation.
Thanks, Eddie
#0 _tlbil_pid () at /usr/src/kernel/arch/powerpc/mm/nohash/tlb_low.S:123 #1 0xca014864 in local_flush_tlb_mm (mm=<optimized out>) at /usr/src/kernel/arch/powerpc/mm/nohash/tlb.c:201 #2 tlb_flush (tlb=<optimized out>) at /usr/src/kernel/arch/powerpc/mm/nohash/tlb.c:395 #3 0xca161e48 in tlb_flush_mmu_tlbonly (tlb=<optimized out>) at /usr/src/kernel/include/asm-generic/tlb.h:408 #4 tlb_flush_mmu_tlbonly (tlb=<optimized out>) at /usr/src/kernel/include/asm-generic/tlb.h:403 #5 tlb_flush_mmu (tlb=0xcec2fd18) at /usr/src/kernel/mm/mmu_gather.c:190 #6 0xca161fa8 in tlb_finish_mmu (tlb=0xcec2fd18, start=<optimized out>, end=<optimized out>) at /usr/src/kernel/mm/mmu_gather.c:272 #7 0xca18e070 in shift_arg_pages (shift=<optimized out>, vma=<optimized out>) at /usr/src/kernel/fs/exec.c:678 #8 setup_arg_pages (bprm=0xcef1a000, stack_top=<optimized out>, executable_stack=<optimized out>) at /usr/src/kernel/fs/exec.c:768 #9 0xca1f617c in load_elf_binary (bprm=0xcef1a000) at /usr/src/kernel/fs/binfmt_elf.c:867 #10 0xca18f3d4 in search_binary_handler (bprm=<optimized out>) at /usr/src/kernel/fs/exec.c:1691 #11 0xca1f458c in next_terminator (last=<optimized out>, first=<optimized out>) at /usr/src/kernel/fs/binfmt_script.c:29 #12 load_script (bprm=0xcef1a000) at /usr/src/kernel/fs/binfmt_script.c:83 #13 0xca18f3d4 in search_binary_handler (bprm=<optimized out>) at /usr/src/kernel/fs/exec.c:1691 #14 0xca190104 in acct_arg_size (bprm=<optimized out>, pages=<optimized out>) at /usr/src/kernel/fs/exec.c:187 #15 __do_execve_file (fd=<optimized out>, filename=0xcec98000, argv=..., envp=..., flags=<optimized out>, file=<optimized out>) at /usr/src/kernel/fs/exec.c:1872 #16 0xca19059c in __read_once_size (size=<optimized out>, res=<optimized out>, p=<optimized out>) at /usr/src/kernel/include/linux/compiler.h:235 #17 set_dumpable (mm=<optimized out>, value=<optimized out>) at /usr/src/kernel/fs/exec.c:1983
| |