mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +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
					
				
					 1 changed files with 69 additions and 3 deletions
				
			
		|  | @ -253,13 +253,79 @@ static const struct file_operations hctx_flags_fops = { | ||||||
| 	.release	= single_release, | 	.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) | static int blk_mq_debugfs_rq_show(struct seq_file *m, void *v) | ||||||
| { | { | ||||||
| 	struct request *rq = list_entry_rq(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", | 	seq_printf(m, "%p {.op=", rq); | ||||||
| 		   rq, rq->cmd_flags, (__force unsigned int)rq->rq_flags, | 	if (op < ARRAY_SIZE(op_name) && op_name[op]) | ||||||
| 		   rq->tag, rq->internal_tag); | 		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; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Bart Van Assche
						Bart Van Assche