Hello all I would like to suggest the patch for ppc32 arch against kexec-2.0.5. Could you please include it into kexec tools. The patch separates highmem and lowmem. Usually highmem and lowmem merges in common segment. Virtual addresses for this segment are invalid because code from crashdump-elf.c set virtual address -1 for lowmem addresses if they share segment with highmem addresses. /* HIGMEM has a virtual address of -1 */ if (elf_info->lowmem_limit && (mend > (elf_info->lowmem_limit - 1))) phdr->p_vaddr = -1; The patch locates them in different segments. So lowmem will have the valid virtual address This is result of gdb backtrace before applying the patch. powerpc-montavista-linux-gnuspe-gdb vmlinux /opt/tmp/vmcore_kexec2.0.5 GNU gdb (MontaVista Linux G++ 4.7-140117041417) 7.6 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=i686-pc-linux-gnu --target=powerpc-montavista-linux-gnuspe". For bug reporting instructions, please see: ... Reading symbols from /home/yadviga/MVL7/mvl7kernel_jan/vmlinux...done. [New LWP 1993] #0 0xc033c1e0 in sysrq_handle_crash (key=99) at drivers/tty/sysrq.c:138 138 *killer = 1; (gdb) bt #0 0xc033c1e0 in sysrq_handle_crash (key=99) at drivers/tty/sysrq.c:138 #1 0xc033ca68 in __handle_sysrq (key=99, key@entry=, check_mask=) at drivers/tty/sysrq.c:533 (gdb) Here is backtrace after aapying the patch. Backtrace looks better. powerpc-montavista-linux-gnuspe-gdb vmlinux /opt/tmp/vmcore GNU gdb (MontaVista Linux G++ 4.7-140117041417) 7.6 ... Reading symbols from /home/yadviga/MVL7/mvl7kernel_jan/vmlinux...done. [New LWP 1969] #0 0xc033c1e0 in sysrq_handle_crash (key=99) at drivers/tty/sysrq.c:138 138 *killer = 1; (gdb) bt #0 0xc033c1e0 in sysrq_handle_crash (key=99) at drivers/tty/sysrq.c:138 #1 0xc033ca68 in __handle_sysrq (key=99, check_mask=check_mask@entry=false) at drivers/tty/sysrq.c:533 #2 0xc033cb24 in write_sysrq_trigger (file=, buf=, count=2, ppos=) at drivers/tty/sysrq.c:1030 #3 0xc0192654 in proc_reg_write (file=, buf=, count=, ppos=) at fs/proc/inode.c:224 #4 0xc0135dd4 in vfs_write (file=file@entry=0xcfb2e480, buf=buf@entry=0x1011b408
, count=count@entry=2, pos=pos@entry=0xcf063f18) at fs/read_write.c:446 #5 0xc0136258 in SYSC_write (count=2, buf=0x1011b408
, fd=) at fs/read_write.c:494 #6 SyS_write (fd=, buf=269595656, count=2) at fs/read_write.c:487 #7 0xc000ed08 in syscall_dotrace_cont () at arch/powerpc/kernel/entry_32.S:385 Backtrace stopped: frame did not save the PC (gdb) Best regards Yadviga