Whamcloud - gitweb
LU-12461 contrib: Add epython scripts for crash dump analysis
[fs/lustre-release.git] / contrib / debug_tools / epython_scripts / README
1 These epython scripts extract the content of various Lustre data
2 structures from crash dumps and formats the output for readability.
3 They are written for use with PyKdump, a framework for using Python
4 as an extension language for the crash tool.
5
6 Documentation and source for PyKdump are available at:
7    https://sourceforge.net/p/pykdump/wiki/Home/
8
9 These scripts are written in Python2. The above wiki page has instructions
10 for converting to Python3. The language extensions are documented in:
11    https://sourceforge.net/p/pykdump/code/ci/master/tree/docs/pykdump.lyx
12
13 The scripts were tested with Lustre 2.11, primarily with dumps of client
14 nodes. The scripts will work with server dumps as long as the data
15 structures match the ones used on clients.
16
17 Summary of scripts:
18  * cfs_hashes.py         Displays summary of cfs_hash tables.
19  * cfs_hnodes.py         Displays the specified Lustre hash table.
20  * debug_flags.py        Prints Lustre libcfs_debug flags as strings.
21  * dk.py                 Dumps and sorts the Lustre dk logs.
22  * jiffies2date.py       Prints the date and time of a given jiffies timestamp.
23  * ldlm_dumplocks.py     Lists granted and waiting locks by namespace/resource.
24  * ldlm_lockflags.py     Prints string identifiers for specified LDLM flags.
25  * lu_object.py          Prints contents of an lu_object.
26  * lustre_opcode.py      Maps Lustre rpc opcodes to string identifiers.
27  * obd_devs.py           Displays the contents of global 'obd_devs'.
28  * ptlrpc.py             Displays the RPC queues of the Lustre ptlrpcd daemons.
29  * rpc_stats.py          Dumps the client_obd structure given by client argument.
30  * sbi_ptrs.py           Prints Lustre structs associated with inode.
31  * uniqueStacktrace.py   Prints stack traces for each task.
32
33 The scripts require symbols from the Lustre and LNet modules to be loaded
34 (mod command in crash). A script is invoked with the command
35 "epython <script name>" followed by any parameters. To get usage information
36 for a particular script, enter the following at the crash prompt:
37    epython <script_name> -h