mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 17:23:36 +00:00
blk-mq: Show operation, cmd_flags and rq_flags names
Show the operation name, .cmd_flags and .rq_flags as names instead of numbers. Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Reviewed-by: Omar Sandoval <osandov@fb.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
fd07dc8185
commit
8658dca8bd
@ -253,13 +253,79 @@ static const struct file_operations hctx_flags_fops = {
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static const char *const op_name[] = {
|
||||
[REQ_OP_READ] = "READ",
|
||||
[REQ_OP_WRITE] = "WRITE",
|
||||
[REQ_OP_FLUSH] = "FLUSH",
|
||||
[REQ_OP_DISCARD] = "DISCARD",
|
||||
[REQ_OP_ZONE_REPORT] = "ZONE_REPORT",
|
||||
[REQ_OP_SECURE_ERASE] = "SECURE_ERASE",
|
||||
[REQ_OP_ZONE_RESET] = "ZONE_RESET",
|
||||
[REQ_OP_WRITE_SAME] = "WRITE_SAME",
|
||||
[REQ_OP_WRITE_ZEROES] = "WRITE_ZEROES",
|
||||
[REQ_OP_SCSI_IN] = "SCSI_IN",
|
||||
[REQ_OP_SCSI_OUT] = "SCSI_OUT",
|
||||
[REQ_OP_DRV_IN] = "DRV_IN",
|
||||
[REQ_OP_DRV_OUT] = "DRV_OUT",
|
||||
};
|
||||
|
||||
static const char *const cmd_flag_name[] = {
|
||||
[__REQ_FAILFAST_DEV] = "FAILFAST_DEV",
|
||||
[__REQ_FAILFAST_TRANSPORT] = "FAILFAST_TRANSPORT",
|
||||
[__REQ_FAILFAST_DRIVER] = "FAILFAST_DRIVER",
|
||||
[__REQ_SYNC] = "SYNC",
|
||||
[__REQ_META] = "META",
|
||||
[__REQ_PRIO] = "PRIO",
|
||||
[__REQ_NOMERGE] = "NOMERGE",
|
||||
[__REQ_IDLE] = "IDLE",
|
||||
[__REQ_INTEGRITY] = "INTEGRITY",
|
||||
[__REQ_FUA] = "FUA",
|
||||
[__REQ_PREFLUSH] = "PREFLUSH",
|
||||
[__REQ_RAHEAD] = "RAHEAD",
|
||||
[__REQ_BACKGROUND] = "BACKGROUND",
|
||||
[__REQ_NR_BITS] = "NR_BITS",
|
||||
};
|
||||
|
||||
static const char *const rqf_name[] = {
|
||||
[ilog2((__force u32)RQF_SORTED)] = "SORTED",
|
||||
[ilog2((__force u32)RQF_STARTED)] = "STARTED",
|
||||
[ilog2((__force u32)RQF_QUEUED)] = "QUEUED",
|
||||
[ilog2((__force u32)RQF_SOFTBARRIER)] = "SOFTBARRIER",
|
||||
[ilog2((__force u32)RQF_FLUSH_SEQ)] = "FLUSH_SEQ",
|
||||
[ilog2((__force u32)RQF_MIXED_MERGE)] = "MIXED_MERGE",
|
||||
[ilog2((__force u32)RQF_MQ_INFLIGHT)] = "MQ_INFLIGHT",
|
||||
[ilog2((__force u32)RQF_DONTPREP)] = "DONTPREP",
|
||||
[ilog2((__force u32)RQF_PREEMPT)] = "PREEMPT",
|
||||
[ilog2((__force u32)RQF_COPY_USER)] = "COPY_USER",
|
||||
[ilog2((__force u32)RQF_FAILED)] = "FAILED",
|
||||
[ilog2((__force u32)RQF_QUIET)] = "QUIET",
|
||||
[ilog2((__force u32)RQF_ELVPRIV)] = "ELVPRIV",
|
||||
[ilog2((__force u32)RQF_IO_STAT)] = "IO_STAT",
|
||||
[ilog2((__force u32)RQF_ALLOCED)] = "ALLOCED",
|
||||
[ilog2((__force u32)RQF_PM)] = "PM",
|
||||
[ilog2((__force u32)RQF_HASHED)] = "HASHED",
|
||||
[ilog2((__force u32)RQF_STATS)] = "STATS",
|
||||
[ilog2((__force u32)RQF_SPECIAL_PAYLOAD)] = "SPECIAL_PAYLOAD",
|
||||
};
|
||||
|
||||
static int blk_mq_debugfs_rq_show(struct seq_file *m, void *v)
|
||||
{
|
||||
struct request *rq = list_entry_rq(v);
|
||||
const unsigned int op = rq->cmd_flags & REQ_OP_MASK;
|
||||
|
||||
seq_printf(m, "%p {.cmd_flags=0x%x, .rq_flags=0x%x, .tag=%d, .internal_tag=%d}\n",
|
||||
rq, rq->cmd_flags, (__force unsigned int)rq->rq_flags,
|
||||
rq->tag, rq->internal_tag);
|
||||
seq_printf(m, "%p {.op=", rq);
|
||||
if (op < ARRAY_SIZE(op_name) && op_name[op])
|
||||
seq_printf(m, "%s", op_name[op]);
|
||||
else
|
||||
seq_printf(m, "%d", op);
|
||||
seq_puts(m, ", .cmd_flags=");
|
||||
blk_flags_show(m, rq->cmd_flags & ~REQ_OP_MASK, cmd_flag_name,
|
||||
ARRAY_SIZE(cmd_flag_name));
|
||||
seq_puts(m, ", .rq_flags=");
|
||||
blk_flags_show(m, (__force unsigned int)rq->rq_flags, rqf_name,
|
||||
ARRAY_SIZE(rqf_name));
|
||||
seq_printf(m, ", .tag=%d, .internal_tag=%d}\n", rq->tag,
|
||||
rq->internal_tag);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user