From Fedora Project Wiki

Revision as of 08:21, 26 March 2012 by Hongqing (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Description

Setup

  1. Install Fedora on your machine
  2. After system installed, check if kexec-tools kernel-debuginfo and crash is installed via
    rpm -q kexec-tools kernel-debuginfo kernel-devel crash
    If not, you can install via yum
    yum install kexec-tools kernel-debuginfo kernel-devel crash
  3. Reserve crashkernel for kdump by grubby
    grubby --args="crashkernl=128M" --update-kernel=$(grubby --default-kernel)
    Reboot system and check /proc/cmdline
      cat /proc/cmdline | grep "crashkernel"
  4. Edit /etc/kdump.conf, add this line:
     ext4 /dev/mapper/vg_dhcp6558-lv_root
     core_collector makedumpfile -E -d 31
  5. Apply changes and start kdump via
    service kdump restart
  6. Edit /etc/kdump.conf, add this line:
    core_collector makedumpfile -E -d 31
  7. Apply changes and start kdump via
    service kdump restart
  8. Build crasher kernel module:
    make
  9. Load crasher module:
    insmod crasher.ko 

How to test

  1. Trigger crash via:
    echo c > /proc/sysrq-trigger
  2. Analyse vmcore:
   readelf -a /var/crash/xxx/vmcore
   objdump -x /var/crash/xxx/vmcore
   eu-readelf -a /var/crash/xxx/vmcore
  1. Use crash to analyse vmcore:
   crash -i crash-simple.cmd /usr/lib/debug/lib/modules/xxx/vmlinux /var/crash/xxx/vmcore
   crash -i crash.cmd /usr/lib/debug/lib/modules/xxx/vmlinux /var/crash/xxx/vmcore
  1. Use gdb to analyse vmcore:
     gdb -x gdb.cmd /usr/lib/debug/lib/modules/xxx/vmlinux /var/crash/xxx/vmcore 

Expected Results

  1. Dump process could be monitered if console is connected
  2. System reboot successfully after dump vmcore finshed
  3. vmcore was found under path /var/crash/xxx/vmcore
  4. readelf should return 0, and no "warning" "warnings" found on output
    1. objdump should return 0
    2. eu-readelf should return 0
  5. No warning or error should be should found on crash output
  6. No warning or error should be should found on gdb output