block: Add nr_bios to block_rq_remap tracepoint
Adding the number of bios in a remapped request to 'block_rq_remap' tracepoint. Request remapper clones bios in a request to track the completion status of each bio. So the number of bios can be useful information for investigation. Related discussions: http://www.redhat.com/archives/dm-devel/2013-August/msg00084.html http://www.redhat.com/archives/dm-devel/2013-September/msg00024.html Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com> Acked-by: Mike Snitzer <snitzer@redhat.com> Cc: Jens Axboe <axboe@kernel.dk> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
		
					parent
					
						
							
								7652113c2f
							
						
					
				
			
			
				commit
				
					
						75afb35299
					
				
			
		
					 2 changed files with 15 additions and 2 deletions
				
			
		|  | @ -862,6 +862,17 @@ static inline unsigned int blk_rq_get_max_sectors(struct request *rq) | |||
| 	return blk_queue_get_max_sectors(q, rq->cmd_flags); | ||||
| } | ||||
| 
 | ||||
| static inline unsigned int blk_rq_count_bios(struct request *rq) | ||||
| { | ||||
| 	unsigned int nr_bios = 0; | ||||
| 	struct bio *bio; | ||||
| 
 | ||||
| 	__rq_for_each_bio(bio, rq) | ||||
| 		nr_bios++; | ||||
| 
 | ||||
| 	return nr_bios; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * Request issue related functions. | ||||
|  */ | ||||
|  |  | |||
|  | @ -618,6 +618,7 @@ TRACE_EVENT(block_rq_remap, | |||
| 		__field( unsigned int,	nr_sector	) | ||||
| 		__field( dev_t,		old_dev		) | ||||
| 		__field( sector_t,	old_sector	) | ||||
| 		__field( unsigned int,	nr_bios		) | ||||
| 		__array( char,		rwbs,	RWBS_LEN) | ||||
| 	), | ||||
| 
 | ||||
|  | @ -627,15 +628,16 @@ TRACE_EVENT(block_rq_remap, | |||
| 		__entry->nr_sector	= blk_rq_sectors(rq); | ||||
| 		__entry->old_dev	= dev; | ||||
| 		__entry->old_sector	= from; | ||||
| 		__entry->nr_bios	= blk_rq_count_bios(rq); | ||||
| 		blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq)); | ||||
| 	), | ||||
| 
 | ||||
| 	TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", | ||||
| 	TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu %u", | ||||
| 		  MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, | ||||
| 		  (unsigned long long)__entry->sector, | ||||
| 		  __entry->nr_sector, | ||||
| 		  MAJOR(__entry->old_dev), MINOR(__entry->old_dev), | ||||
| 		  (unsigned long long)__entry->old_sector) | ||||
| 		  (unsigned long long)__entry->old_sector, __entry->nr_bios) | ||||
| ); | ||||
| 
 | ||||
| #endif /* _TRACE_BLOCK_H */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jun'ichi Nomura
				Jun'ichi Nomura