> Move filling crash_memory_range table entries into a separate routine, > which saves quite a few lines of code. > > In this routine, if range spawns over lowmem-highmem border, split range > into two. This is needed to get proper virtual address for lowmem part. > Similar thing is already done for x86. Credits to Yadviga Grigorieva > <yadv...@dev.rtsoft.ru> for tracking down this issue for ppc. > > Also this patch makes excluding crash kernel region a bit shorter, and > removes unused variable to get rid of compiler warning. > > Signed-off-by: Nikita Yushchenko <nyushche...@dev.rtsoft.ru> > --- > kexec/arch/ppc/crashdump-powerpc.c | 108 > +++++++++++++++++------------------- > 1 files changed, 51 insertions(+), 57 deletions(-)
Hi Any followup on this? Without this patch, vmcore files extracted with kdump is not very useful with gdb: root@freescale-p2020ds:~# gdb ./vmlinux /mnt/vmcore --command=/usr/share/gdb/macros/gdb-kdump-helpers/gdbinit_commit GNU gdb (GDB) 7.6 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 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 "powerpc-montavista-linux-gnuspe". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/root/vmlinux...done. [New LWP 2720] #0 0xc035ae4c in sysrq_handle_crash (key=99) at drivers/tty/sysrq.c:138 138 drivers/tty/sysrq.c: No such file or directory. (gdb) bt #0 0xc035ae4c in sysrq_handle_crash (key=99) at drivers/tty/sysrq.c:138 #1 0xc035b6dc in __handle_sysrq (key=99, key@entry=<error reading variable: Cannot access memory at address 0xed679ed4>, check_mask=<optimized out>) at drivers/tty/sysrq.c:533 (gdb) ps PID tty CMD Cannot access memory at address 0xef85858c (gdb) With this patch, things are much better: (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=<optimized out>, buf=<optimized out>, count=2, ppos=<optimized out>) at drivers/tty/sysrq.c:1030 #3 0xc0192654 in proc_reg_write (file=<optimized out>, buf=<optimized out>, count=<optimized out>, ppos=<optimized out>) at fs/proc/inode.c:224 #4 0xc0135dd4 in vfs_write (file=file@entry=0xcfa78240, buf=buf@entry=0x1011b408 <Address 0x1011b408 out of bounds>, count=count@entry=2, pos=pos@entry=0xcf71ff18) at fs/read_write.c:446 #5 0xc0136258 in SYSC_write (count=2, buf=0x1011b408 <Address 0x1011b408 out of bounds>, fd=<optimized out>) at fs/read_write.c:494 #6 SyS_write (fd=<optimized out>, 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 _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec