4 Utility to print Lustre libcfs_debug flags
5 Copyright (c) 2019 Cray Inc. All Rights Reserved.
8 from pykdump.API import *
9 from crashlib.input import toint
12 description_short = "Prints Lustre libcfs_debug flags as strings"
15 0x00000001: 'trace', #define D_TRACE
16 0x00000002: 'inode', #define D_INODE
17 0x00000004: 'super', #define D_SUPER
18 0x00000008: 'ext2', #define D_EXT2
19 0x00000010: 'malloc', #define D_MALLOC
20 0x00000020: 'cache', #define D_CACHE
21 0x00000040: 'info', #define D_INFO
22 0x00000080: 'ioctl', #define D_IOCTL
23 0x00000100: 'neterror', #define D_NETERROR
24 0x00000200: 'net', #define D_NET
25 0x00000400: 'warning', #define D_WARNING
26 0x00000800: 'buffs', #define D_BUFFS
27 0x00001000: 'other', #define D_OTHER
28 0x00002000: 'dentry', #define D_DENTRY
29 0x00004000: 'nettrace', #define D_NETTRACE
30 0x00008000: 'page', #define D_PAGE
31 0x00010000: 'dlmtrace', #define D_DLMTRACE
32 0x00020000: 'error', #define D_ERROR
33 0x00040000: 'emerg', #define D_EMERG
34 0x00080000: 'ha', #define D_HA
35 0x00100000: 'rpctrace', #define D_RPCTRACE
36 0x00200000: 'vfstrace', #define D_VFSTRACE
37 0x00400000: 'reada', #define D_READA
38 0x00800000: 'mmap', #define D_MMAP
39 0x01000000: 'config', #define D_CONFIG
40 0x02000000: 'console', #define D_CONSOLE
41 0x04000000: 'quota', #define D_QUOTA
42 0x08000000: 'sec', #define D_SEC
43 0x10000000: 'lfsck', #define D_LFSCK
44 0x20000000: 'hsm', #define D_HSM
45 0x40000000: 'snapshot', #define D_SNAPSHOT
46 0x80000000: 'layout' #define D_LAYOUT
49 def print_flags(flag_tbl, mask):
52 for key, value in flag_tbl.iteritems():
54 flags = flags + value + " "
56 print "mask: 0x%x = %s" % (mask, flags)
58 print "unknown bits set in mask: 0x%x" % tmp
60 def dump_debug_flags(bitmask):
63 bitmask = readSymbol('libcfs_debug')
64 print_flags(debug_flags_tbl, bitmask)
66 if __name__ == "__main__":
67 description = "Prints libcfs_debug flags as strings"
68 parser = argparse.ArgumentParser(description=description)
69 parser.add_argument("bitmask", nargs="?", type=toint, default=[],
70 help="debug bit mask to be translated; default is current libcfs_debug value")
71 args = parser.parse_args()
72 dump_debug_flags(args.bitmask)