Can't kexec/kdump on mpc85xx

Makito SHIOKAWA mshiokawa at miraclelinux.com
Thu Sep 30 06:20:39 EDT 2010


(2010/09/30 0:58), Matthew McClintock wrote:

> There are some other patches I sent upstream after 2.6.35 that fix these issues...

I've missed your recent patches. After applying below patches to linux-2.6.35, 
CONFIG_CRASH_DUMP, CONFIG_PROC_VMCORE were settable and second kernel booted 
normally on "kexec -p".

* powerpc/kexec: Adds correct calling convention for kexec purgatory
* powerpc/85xx: kexec for SMP 85xx BookE systems
* powerpc/crashdump: Fix issues with kexec and 36bit physical addr

And at last, I could see /proc/vmcore!

---
# gdb /boot/vmlinux /proc/vmcore
GNU gdb Red Hat Linux (6.5-16rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "ppc-asianux-linux-gnu"...Using host libthread_db lib
rary "/lib/libthread_db.so.1".


warning: exec file is newer than core file.
#0  0xc01b8054 in sysrq_handle_crash (key=99, tty=0x0)
     at drivers/char/sysrq.c:135
135     drivers/char/sysrq.c: No such file or directory.
         in drivers/char/sysrq.c
(gdb) bt
#0  0xc01b8054 in sysrq_handle_crash (key=99, tty=0x0)
     at drivers/char/sysrq.c:135
#1  0xc01b831c in __handle_sysrq (key=99, tty=0x0, check_mask=0)
     at drivers/char/sysrq.c:523
#2  0xc01b847c in write_sysrq_trigger (file=<value optimized out>,
     buf=<value optimized out>, count=2, ppos=0xc01bf3b0)
     at drivers/char/sysrq.c:768
#3  0xc00f1cfc in proc_reg_write (file=0x63, buf=0x0, count=4294967295,
     ppos=0xc01bf3b0) at fs/proc/inode.c:185
#4  0xc00a94e0 in vfs_write (file=0xdfb84400,
     buf=0x48020000 <Address 0x48020000 out of bounds>,
     count=<value optimized out>, pos=0xdfbbbf20) at fs/read_write.c:366
#5  0xc00a96bc in sys_write (fd=<value optimized out>,
     buf=0x48020000 <Address 0x48020000 out of bounds>, count=2)
     at fs/read_write.c:418
#6  0xc001059c in syscall_dotrace_cont ()
#7  0xc01b831c in __handle_sysrq (key=2, tty=0xfeb2ff4, check_mask=0)
     at drivers/char/sysrq.c:523
#8  0x00000000 in ?? ()
---

After all, problem was only kexec-tools' cross compiling optimization issue. 
Thanks a lot!

-- 
Makito SHIOKAWA <mshiokawa at miraclelinux.com>



More information about the kexec mailing list