[Crash-utility] Crash issue when loading vmcore

Dave Anderson anderson at redhat.com
Mon Aug 23 19:20:23 UTC 2010


----- "Paul Cahier" <pkc at f1-photo.com> wrote:

> Hello,
> 
> I have finished setting up kdump and kexec today, recompiling my kernel 
> to add everything needed in there.
> I have triggered a kernel panic by echo c>/proc/sysrq-trigger, and found 
> that the vmcore dump was indeed there after all was done.
> 
> However I can not get any traces out of that crash dump(short version,
> long version at the end of the email):
> 
> crash /usr/src/linux-2.6.35.3/vmlinux vmcore.201008231930
> [...]
> crash: read error: kernel virtual address: c148a9a0  type: "kernel_config_data"
> WARNING: cannot read kernel_config_data
> crash: read error: kernel virtual address: c1487e28  type: "cpu_possible_mask"

The virtual addresses for "kernel_config_data" and "cpu_possible_mask" are
strange (too high?) -- I'll continue the analysis at the end of your "d7" 
output below...
 
> If I try crash --minimal things do load but I'm stuck with the minimal
> error set that's not very helpful.
> All I'm looking at is getting a full trace of the kernel panic.
> 
> 
> - Paul-Kenji Cahier
> 
> 
> PS, the full version:
> crash -d7 /usr/src/linux-2.6.35.3/vmlinux vmcore.201008231930
> 
> crash 5.0.6
> Copyright (C) 2002-2010  Red Hat, Inc.
> Copyright (C) 2004, 2005, 2006  IBM Corporation
> Copyright (C) 1999-2006  Hewlett-Packard Co
> Copyright (C) 2005, 2006  Fujitsu Limited
> Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
> Copyright (C) 2005  NEC Corporation
> Copyright (C) 1999, 2002, 2007  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.
> 
> vmcore_data:
>                    flags: a0 (KDUMP_LOCAL|KDUMP_ELF32)
>                     ndfd: 3
>                      ofp: b77344c0
>              header_size: 1860
>     num_pt_load_segments: 9
>       pt_load_segment[0]:
>              file_offset: 744
>               phys_start: 0
>                 phys_end: a0000
>                zero_fill: 0
>       pt_load_segment[1]:
>              file_offset: a0744
>               phys_start: 100000
>                 phys_end: 1000000
>                zero_fill: 0
>       pt_load_segment[2]:
>              file_offset: fa0744
>               phys_start: 5000000
>                 phys_end: 38000000
>                zero_fill: 0
>       pt_load_segment[3]:
>              file_offset: 33fa0744
>               phys_start: 38000000
>                 phys_end: 3e5ff000
>                zero_fill: 0
>       pt_load_segment[4]:
>              file_offset: 3a59f744
>               phys_start: 3e6c6000
>                 phys_end: 3f594000
>                zero_fill: 0
>       pt_load_segment[5]:
>              file_offset: 3b46d744
>               phys_start: 3f59c000
>                 phys_end: 3f62a000
>                zero_fill: 0
>       pt_load_segment[6]:
>              file_offset: 3b4fb744
>               phys_start: 3f62e000
>                 phys_end: 3f6a9000
>                zero_fill: 0
>       pt_load_segment[7]:
>              file_offset: 3b576744
>               phys_start: 3f6e9000
>                 phys_end: 3f6ed000
>                zero_fill: 0
>       pt_load_segment[8]:
>              file_offset: 3b57a744
>               phys_start: 3f6ff000
>                 phys_end: 3f700000
>                zero_fill: 0
>               elf_header: 85368c0
>                    elf32: 85368c0
>                  notes32: 85368f4
>                   load32: 8536914
>                    elf64: 0
>                  notes64: 0
>                   load64: 0
>              nt_prstatus: 8536a34
>              nt_prpsinfo: 0
>            nt_taskstruct: 0
>              task_struct: 0
>                page_size: 0
>             switch_stack: 0
>           xen_kdump_data: (unused)
>         num_prstatus_notes: 2
>                 vmcoreinfo: 0
>            size_vmcoreinfo: 0
>         nt_prstatus_percpu:
>          08536a34 08536ad8
> 
> Elf32_Ehdr:
>                  e_ident: \177ELF
>        e_ident[EI_CLASS]: 1 (ELFCLASS32)
>         e_ident[EI_DATA]: 1 (ELFDATA2LSB)
>      e_ident[EI_VERSION]: 1 (EV_CURRENT)
>        e_ident[EI_OSABI]: 0 (ELFOSABI_SYSV)
>   e_ident[EI_ABIVERSION]: 0
>                   e_type: 4 (ET_CORE)
>                e_machine: 3 (EM_386)
>                e_version: 1 (EV_CURRENT)
>                  e_entry: 0
>                  e_phoff: 34
>                  e_shoff: 0
>                  e_flags: 0
>                 e_ehsize: 34
>              e_phentsize: 20
>                  e_phnum: a
>              e_shentsize: 0
>                  e_shnum: 0
>               e_shstrndx: 0
> Elf32_Phdr:
>                   p_type: 4 (PT_NOTE)
>                 p_offset: 372 (174)
>                  p_vaddr: 0
>                  p_paddr: 0
>                 p_filesz: 1488 (5d0)
>                  p_memsz: 1488 (5d0)
>                  p_flags: 0 ()
>                  p_align: 0
> Elf32_Phdr:
>                   p_type: 1 (PT_LOAD)
>                 p_offset: 1860 (744)
>                  p_vaddr: c0000000
>                  p_paddr: 0
>                 p_filesz: 655360 (a0000)
>                  p_memsz: 655360 (a0000)
>                  p_flags: 7 (PF_X|PF_W|PF_R)
>                  p_align: 0
> Elf32_Phdr:
>                   p_type: 1 (PT_LOAD)
>                 p_offset: 657220 (a0744)
>                  p_vaddr: c0100000
>                  p_paddr: 100000
>                 p_filesz: 15728640 (f00000)
>                  p_memsz: 15728640 (f00000)
>                  p_flags: 7 (PF_X|PF_W|PF_R)
>                  p_align: 0
> Elf32_Phdr:
>                   p_type: 1 (PT_LOAD)
>                 p_offset: 16385860 (fa0744)
>                  p_vaddr: c5000000
>                  p_paddr: 5000000
>                 p_filesz: 855638016 (33000000)
>                  p_memsz: 855638016 (33000000)
>                  p_flags: 7 (PF_X|PF_W|PF_R)
>                  p_align: 0
> Elf32_Phdr:
>                   p_type: 1 (PT_LOAD)
>                 p_offset: 872023876 (33fa0744)
>                  p_vaddr: ffffffff
>                  p_paddr: 38000000
>                 p_filesz: 106950656 (65ff000)
>                  p_memsz: 106950656 (65ff000)
>                  p_flags: 7 (PF_X|PF_W|PF_R)
>                  p_align: 0
> Elf32_Phdr:
>                   p_type: 1 (PT_LOAD)
>                 p_offset: 978974532 (3a59f744)
>                  p_vaddr: ffffffff
>                  p_paddr: 3e6c6000
>                 p_filesz: 15523840 (ece000)
>                  p_memsz: 15523840 (ece000)
>                  p_flags: 7 (PF_X|PF_W|PF_R)
>                  p_align: 0
> Elf32_Phdr:
>                   p_type: 1 (PT_LOAD)
>                 p_offset: 994498372 (3b46d744)
>                  p_vaddr: ffffffff
>                  p_paddr: 3f59c000
>                 p_filesz: 581632 (8e000)
>                  p_memsz: 581632 (8e000)
>                  p_flags: 7 (PF_X|PF_W|PF_R)
>                  p_align: 0
> Elf32_Phdr:
>                   p_type: 1 (PT_LOAD)
>                 p_offset: 995080004 (3b4fb744)
>                  p_vaddr: ffffffff
>                  p_paddr: 3f62e000
>                 p_filesz: 503808 (7b000)
>                  p_memsz: 503808 (7b000)
>                  p_flags: 7 (PF_X|PF_W|PF_R)
>                  p_align: 0
> Elf32_Phdr:
>                   p_type: 1 (PT_LOAD)
>                 p_offset: 995583812 (3b576744)
>                  p_vaddr: ffffffff
>                  p_paddr: 3f6e9000
>                 p_filesz: 16384 (4000)
>                  p_memsz: 16384 (4000)
>                  p_flags: 7 (PF_X|PF_W|PF_R)
>                  p_align: 0
> Elf32_Phdr:
>                   p_type: 1 (PT_LOAD)
>                 p_offset: 995600196 (3b57a744)
>                  p_vaddr: ffffffff
>                  p_paddr: 3f6ff000
>                 p_filesz: 4096 (1000)
>                  p_memsz: 4096 (1000)
>                  p_flags: 7 (PF_X|PF_W|PF_R)
>                  p_align: 0
> Elf32_Nhdr:
>                 n_namesz: 5 ("CORE")
>                 n_descsz: 144
>                   n_type: 1 (NT_PRSTATUS)
>                           00000000 00000000 00000000 00000000
>                           00000000 00000000 00000000 00000000
>                           00000000 00000000 00000000 00000000
>                           00000000 00000000 00000000 00000000
>                           00000000 00000000 00000000 00000000
>                           00000000 00000000 00000000 00000401
>                           c06fef00 00000001 0000f004 0000f008
>                           00000000 c06e3ecc 00000282 00000282
>                           00000024 c06e3fa4 00000068 00000000
> Elf32_Nhdr:
>                 n_namesz: 5 ("CORE")
>                 n_descsz: 144
>                   n_type: 1 (NT_PRSTATUS)
>                           00000000 00000000 00000000 00000000
>                           00000000 00000000 00000dbd 00000000
>                           00000000 00000000 00000000 00000000
>                           00000000 00000000 00000000 00000000
>                           00000000 00000000 c0712420 00007e7e
>                           00000000 00000063 00000000 f0639f0c
>                           00000063 0000007b 0000007b 000000d8
>                           00000033 ffffffff c03145b2 00000060
>                           00010086 f0639f0c 00000068 00000000
> Elf32_Nhdr:
>                 n_namesz: 11 ("VMCOREINFO")
>                 n_descsz: 1134
>                   n_type: 0 (unused)
>                           OSRELEASE=2.6.35.3-saber
>                           PAGESIZE=4096
>                           SYMBOL(init_uts_ns)=c06f9120
>                           SYMBOL(node_online_map)=c0730644
>                           SYMBOL(swapper_pg_dir)=c06e4000
>                           SYMBOL(_stext)=c0101000
>                           SYMBOL(vmlist)=c07d3540
>                           SYMBOL(mem_map)=c07d3500
>                           SYMBOL(contig_page_data)=c072ce80
>                           SIZE(page)=32
>                           SIZE(pglist_data)=4224
>                           SIZE(zone)=1024
>                           SIZE(free_area)=44
>                           SIZE(list_head)=8
>                           SIZE(nodemask_t)=4
>                           OFFSET(page.flags)=0
>                           OFFSET(page._count)=4
>                           OFFSET(page.mapping)=16
>                           OFFSET(page.lru)=24
>                           OFFSET(pglist_data.node_zones)=0
>                           OFFSET(pglist_data.nr_zones)=4140
>                           OFFSET(pglist_data.node_mem_map)=4144
>                           OFFSET(pglist_data.node_start_pfn)=4148
>                           OFFSET(pglist_data.node_spanned_pages)=4156
>                           OFFSET(pglist_data.node_id)=4160
>                           OFFSET(zone.free_area)=40
>                           OFFSET(zone.vm_stat)=728
>                           OFFSET(zone.spanned_pages)=916
>                           OFFSET(free_area.free_list)=0
>                           OFFSET(list_head.next)=0
>                           OFFSET(list_head.prev)=4
>                           OFFSET(vm_struct.addr)=4
>                           LENGTH(zone.free_area)=11
>                           SYMBOL(log_buf)=c06fc83c
>                           SYMBOL(log_end)=c07bb7ec
>                           SYMBOL(log_buf_len)=c06fc838
>                           SYMBOL(logged_chars)=c07c38a0
>                           LENGTH(free_area.free_list)=5
>                           NUMBER(NR_FREE_PAGES)=0
>                           NUMBER(PG_lru)=5
>                           NUMBER(PG_private)=11
>                           NUMBER(PG_swapcache)=16
>                           CONFIG_X86_PAE=y
>                           CRASHTIME=1282584565
> cannot determine relocation value: not a live system
> gdb /usr/src/linux-2.6.35.3/vmlinux
> GNU gdb (GDB) 7.0
> Copyright (C) 2009 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 "i686-pc-linux-gnu"...
> 
> <readmem: c148a9a0, KVADDR, "kernel_config_data", 32768, (ROE), 8bad3d8>
> crash: read error: kernel virtual address: c148a9a0  type: "kernel_config_data"
> WARNING: cannot read kernel_config_data
> <readmem: c1487e28, KVADDR, "cpu_possible_mask", 4, (FOE), bfed4bbc>
> crash: read error: kernel virtual address: c1487e28  type: "cpu_possible_mask"

The read error with for the "kernel_config_data" symbol at c148a9a0 and (which returns on
error -- that's what ROE means), and then the "cpu_possible_mask" symbol at c1487e28 (which
cause the session to fault or bail out -- FOE), mean that -- after translating those virtual
addresses to physical addresses by stripping off the c0000000 unity-map identifier -- those 
physical addresses (at 148a9a0 and 1487e28 respectively) were not found in the dumpfile.
And that's because the ELF header of the vmcore does not show a PT_LOAD segment
that contains those physical addresses.

But as I mentioned before, the virtual addresses seem to be too high for
static kernel data symbols.  If you run --minimal, does the "sym" command
show "cpu_possible_mask" at that address?  I don't have anything later than
a 2.6.34 x86 dumpfile to use as a reference, but the symbol is much lower
in value in that kernel:

  crash> sym cpu_possible_mask
  c07ffa28 (R) cpu_possible_mask  
  crash>

And if I dump all of the symbols from within a --minimal session with that
dumpfile, I see this, where the "_end" of the static kernel virtual memory
is at c0c77000:

  crash> sym -l
  ... [ cut ] ...
  c0b50ffc (b) netlbl_unlhsh_lock
  c0b51000 (b) klist_remove_lock
  c0b51004 (B) __bss_stop
  c0b52000 (b) .brk
  c0b52000 (B) __brk_base
  c0b62000 (b) .brk.pagetables
  c0c67000 (b) .brk.dmi_alloc
  c0c77000 (B) __brk_limit
  c0c77000 (A) _end
  crash>

And if you look at the "VMCOREINFO" data above in your dump for items that are
kernel symbol values, they make sense, i.e., 

>                           SYMBOL(node_online_map)=c0730644
>                           SYMBOL(swapper_pg_dir)=c06e4000
>                           SYMBOL(_stext)=c0101000
>                           SYMBOL(vmlist)=c07d3540
>                           SYMBOL(mem_map)=c07d3500
>                           SYMBOL(contig_page_data)=c072ce80

If you run a --minimal session, what do you see when you run the
two commands that I show above?  (i.e., "sym cpu_possible_mask" & the output
of the tail end of "sym -l")

Dave




But for starters, if you run the --minimal session and then execute the




More information about the Crash-utility mailing list