mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	nvme: trace bio completion
When native multipathing is enabled we cannot enable blktrace for the underlying paths, so any completion is never traced. Signed-off-by: Hannes Reinecke <hare@suse.com> [fixed-up by Mikhail for non-multipath-build] Signed-off-by: Mikhail Skorzhinskii <mskorzhinskiy@solarflare.com> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
This commit is contained in:
		
							parent
							
								
									e01f91dff9
								
							
						
					
					
						commit
						35fe0d12c8
					
				
					 2 changed files with 21 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -22,12 +22,12 @@
 | 
			
		|||
#include <linux/pm_qos.h>
 | 
			
		||||
#include <asm/unaligned.h>
 | 
			
		||||
 | 
			
		||||
#define CREATE_TRACE_POINTS
 | 
			
		||||
#include "trace.h"
 | 
			
		||||
 | 
			
		||||
#include "nvme.h"
 | 
			
		||||
#include "fabrics.h"
 | 
			
		||||
 | 
			
		||||
#define CREATE_TRACE_POINTS
 | 
			
		||||
#include "trace.h"
 | 
			
		||||
 | 
			
		||||
#define NVME_MINORS		(1U << MINORBITS)
 | 
			
		||||
 | 
			
		||||
unsigned int admin_timeout = 60;
 | 
			
		||||
| 
						 | 
				
			
			@ -279,6 +279,8 @@ void nvme_complete_rq(struct request *req)
 | 
			
		|||
			return;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	nvme_trace_bio_complete(req, status);
 | 
			
		||||
	blk_mq_end_request(req, status);
 | 
			
		||||
}
 | 
			
		||||
EXPORT_SYMBOL_GPL(nvme_complete_rq);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,8 @@
 | 
			
		|||
#include <linux/fault-inject.h>
 | 
			
		||||
#include <linux/rcupdate.h>
 | 
			
		||||
 | 
			
		||||
#include <trace/events/block.h>
 | 
			
		||||
 | 
			
		||||
extern unsigned int nvme_io_timeout;
 | 
			
		||||
#define NVME_IO_TIMEOUT	(nvme_io_timeout * HZ)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -511,6 +513,16 @@ static inline void nvme_mpath_check_last_path(struct nvme_ns *ns)
 | 
			
		|||
		kblockd_schedule_work(&head->requeue_work);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline void nvme_trace_bio_complete(struct request *req,
 | 
			
		||||
        blk_status_t status)
 | 
			
		||||
{
 | 
			
		||||
	struct nvme_ns *ns = req->q->queuedata;
 | 
			
		||||
 | 
			
		||||
	if (req->cmd_flags & REQ_NVME_MPATH)
 | 
			
		||||
		trace_block_bio_complete(ns->head->disk->queue,
 | 
			
		||||
					 req->bio, status);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
extern struct device_attribute dev_attr_ana_grpid;
 | 
			
		||||
extern struct device_attribute dev_attr_ana_state;
 | 
			
		||||
extern struct device_attribute subsys_attr_iopolicy;
 | 
			
		||||
| 
						 | 
				
			
			@ -554,6 +566,10 @@ static inline void nvme_mpath_clear_current_path(struct nvme_ns *ns)
 | 
			
		|||
static inline void nvme_mpath_check_last_path(struct nvme_ns *ns)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
static inline void nvme_trace_bio_complete(struct request *req,
 | 
			
		||||
        blk_status_t status)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
static inline int nvme_mpath_init(struct nvme_ctrl *ctrl,
 | 
			
		||||
		struct nvme_id_ctrl *id)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue