| 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> |
...