lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 27 Apr 2021 12:03:25 -0500
From:   Eddie James <eajames@...ux.ibm.com>
To:     linuxppc-dev@...ts.ozlabs.org
Cc:     linux-kernel@...r.kernel.org, benh@...nel.crashing.org,
        paulus@...ba.org, mpe@...erman.id.au, christophe.leroy@...roup.eu,
        npiggin@...il.com, miltonm@...ibm.com
Subject: PPC476 hangs during tlb flush after calling /init in crash kernel
 with linux 5.4+

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ