Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Configuring kdump

If kdump is not configured on your system. Below is an article explaining how to configure it.

...

Then you load the kernel modules (including Lustre/LNet modules):

Code Block
mod -S /usr/lib/debug/lib/modules/
# if the modules are in the default location then you only need to do "mod -S", other wise the path needs to be specified.

. If the modules are in the default location then you only need to do "mod -S", otherwise the path needs to be specified.

Code Block
mod -S /usr/lib/debug/lib/modules/

Once modules are loaded you cand can perform the commands below. All the following commandscommands have help functions, printed by help <command>, ex: help bt

Code Block
# Display stack trace for crashed task
bt
 
# gives you stack trace for all the CPUs
bt -a
 
# gives you task list in condensed form
ps
 
# give you more info on each call, including stack addresses.
bt -f
 
# print back trace with line numbers
bt -l
 
# print stack traces for all tasks
foreach bt | less
 
# print the stack trace for wanted task
bt [<PID> | <task pointer>]
 
# to examine type definitions
whatis <type name>
 
# EXAMPLE:
crash> whatis the_lnet
lnet_t the_lnet
 
crash> whatis lnet_t
typedef struct {
    ....
} lnet_t;
 
# examining global variables
crash> the_lnet
the_lnet = $1 = {
  ln_cpt_table = 0xffff883cecde6940, 
  ln_cpt_number = 16, 
  ln_cpt_bits = 4, 
  ln_res_lock = 0xffff883ce8a8a1a0,
  ...
}
 
# examining local variables
<struct name> <address>
# EXAMPLE (more details below)
lnet_peer_ni <address>

...