Jay Lan wrote:
Jay Lan wrote:
> Hi,
>
> I saved off a vmcore from a kexec'ed crashkernel at an IA64 Altix.
>
> When i tried to run crash (4.0-3.5) on the vmcore, it failed.
> Is there a known issue?
Not until now...
And there doesn't look to be anything in 4.0-3.6, -3.7 and 3.8 that
will help.
Mmm, i built the crash binary myself from the src.rpm. It probably
picked up mismatched kernel headers?
No, crash doesn't use any kernel headers.
It looks to be a loop-hole in the memory-node-gathering code
for (newer?) CONFIG_DISCONTIG ia64 kernels.
> % crash System.map* vmlinuz-2.6.18-kdump vmcore
>
BTW, did you mis-copy the command line above? crash can't
use a compressed *vmlinuz* file, unless it's really a renamed ELF
binary? In any case, if the vmlinux file you're using matches the
vmcore dumpfile, there's no need to use the System.map file
argument; doing so prevents several commands from being
able to use line numbers.
Anyway, back to the problem at hand...
What happens if you apply the attached patch? (it's against
the current 4.0-3.8 version, but should apply)
Dave
> crash 4.0-3.5
> Copyright (C) 2002, 2003, 2004, 2005, 2006 Red Hat, Inc.
> Copyright (C) 2004, 2005, 2006 IBM Corporation
> Copyright (C) 1999-2006 Hewlett-Packard Co
> Copyright (C) 2005 Fujitsu Limited
> Copyright (C) 2005 NEC Corporation
> Copyright (C) 1999, 2002 Silicon Graphics, Inc.
> Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
> This program 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. Enter "help copying" to see the conditions.
> This program has absolutely no warranty. Enter "help warranty" for
details.
>
> crash(7419): unaligned access to 0x60000000001bf1cc, ip=0x400000000026d090
> crash(7419): unaligned access to 0x60000000001bf1d4, ip=0x400000000026d090
> crash(7419): unaligned access to 0x60000000001bf1dc, ip=0x400000000026d090
> crash(7419): unaligned access to 0x60000000001bf1e4, ip=0x400000000026d090
> crash(7419): unaligned access to 0x60000000001bf1ec, ip=0x400000000026d090
> GNU gdb 6.1
> Copyright 2004 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 "ia64-unknown-linux-gnu"...
>
> please wait... (patching 23743 gdb minimal_symbol values)
> crash: invalid (optional) structure member offsets:
> pglist_data_node_next or pglist_data_pgdat_next
> FILE: memory.c LINE: 11504 FUNCTION: node_table_init()
>
> [/usr/people/jlan/bin/crash] error trace: => 4000000000231740
>
> 4000000000231740: OFFSET_option+432
>
>
Index: memory.c
===================================================================
RCS file: /nfs/projects/cvs/crash/memory.c,v
retrieving revision 1.132
diff -u -r1.132 memory.c
--- memory.c 11 Oct 2006 13:14:35 -0000 1.132
+++ memory.c 26 Oct 2006 14:06:25 -0000
@@ -11496,7 +11496,9 @@
* Override numnodes -- some kernels may leave it at 1 on a system
* with multiple memory nodes.
*/
- if (vt->flags & NODES) {
+ if ((vt->flags & NODES) &&
+ (VALID_MEMBER(pglist_data_node_next) ||
+ VALID_MEMBER(pglist_data_pgdat_next))) {
get_symbol_data("pgdat_list", sizeof(void *), &pgdat);
for (n = 0; pgdat; n++) {