NAME
sbitmapq - sbitmap_queue struct contents
SYNOPSIS
sbitmapq [-s struct[.member[,member]] -a address [-p] [-v]] -[x|d] address
DESCRIPTION
The command dumps the contents of the sbitmap_queue structure and
the used bits in the bitmap. Also, it shows the dump of a structure
array associated with the sbitmap_queue.
The arguments are as follows:
-s struct name of a C-code structure, that is stored in an array
associated with sbitmap_queue structure. Use the
"struct.member" format in order to display a particular
member of the structure. -s option requires -a option
-a address address of a structure array associated with sbitmap_queue
structure. The set bits in sbitmap are used for the index
in an associated array.
-p associated with sbitmap_queue array contains the points of
structure.
-x override default output format with hexadecimal format.
-d override default output format with decimal format.
-v By default, the sbitmap command shows only a used sbitmap
index and a structure address in the associated array.
This flag says to print a formatted display of the
contents of a structure in an associated array. -v option
requires of -s.
EXAMPLES
All examples are shown on the base of Linux Target system with iSCSI
transport.
Display the common sbitmap information for target session:
crash> struct -oh se_session 0xc0000000e118c760 | grep sbitmap_queue
[c0000000e118c808] struct sbitmap_queue sess_tag_pool;
crash>
crash> sbitmapq c0000000e118c808
depth = 136
busy = 4
cleared = 26
bits_per_word = 32
map_nr = 5
alloc_hint = {74, 36, 123, 101}
wake_batch = 8
wake_index = 0
ws_active = 0
ws = {
{ .wait_cnt = 8, .wait = inactive },
{ .wait_cnt = 8, .wait = inactive },
{ .wait_cnt = 8, .wait = inactive },
{ .wait_cnt = 8, .wait = inactive },
{ .wait_cnt = 8, .wait = inactive },
{ .wait_cnt = 8, .wait = inactive },
{ .wait_cnt = 8, .wait = inactive },
{ .wait_cnt = 8, .wait = inactive },
}
round_robin = 0
min_shallow_depth = 4294967295
00000000: 0000 0000 0000 0000 0030 0000 0000 0000
00000010: 00
Display the addresses of structure are associated with
sbitmap_queue (for iscsi it is 'iscsi_cmd' structure):
crash> struct se_session 0xc0000000e118c760 | grep sess_cmd_map
sess_cmd_map = 0xc0000000671c0000,
crash>
crash> sbitmapq -s iscsi_cmd -a 0xc0000000671c0000 c0000000e118c808
76: 0xc0000000671d5600
77: 0xc0000000671d5a80
Dump of formatted content of structures:
crash> sbitmapq -s iscsi_cmd -a 0xc0000000671c0000 -v c0000000e118c808
76 (0xc0000000671d5600):
struct iscsi_cmd {
dataout_timer_flags = 0,
dataout_timeout_retries = 0 '\000',
error_recovery_count = 0 '\000',
deferred_i_state = ISTATE_NO_STATE,
i_state = ISTATE_SENT_STATUS,
...
first_data_sg = 0xc0000000e306b080,
first_data_sg_off = 0,
kmapped_nents = 1,
sense_reason = 0
}
77 (0xc0000000671d5a80):
struct iscsi_cmd {
dataout_timer_flags = 0,
dataout_timeout_retries = 0 '\000',
error_recovery_count = 0 '\000',
deferred_i_state = ISTATE_NO_STATE,
i_state = ISTATE_NEW_CMD,
...
first_data_sg = 0x0,
first_data_sg_off = 0,
kmapped_nents = 0,
sense_reason = 0
}
|